Oracle10g新增DBMS_FILE_TRANSFER包(二)
Oracle10g新增了DBMS_FILE_TRANSFER包,透過資料庫的功能實現了檔案的傳輸。
這篇介紹GET_FILE和PUT_FILE過程。
Oracle10g新增DBMS_FILE_TRANSFER包(一):http://yangtingkun.itpub.net/post/468/484002
前面介紹了COPY_FILE,這裡介紹這個包的另外兩個過程,GET_FILE和PUT_FILE。這兩個過程的功能和FTP的get和put命令是否類似,就是利用資料庫的功能將檔案在兩個資料庫伺服器之間進行複製。和COPY_FILE過程唯一不同之處在於,GET_FILE和PUT_FILE過程多了一個引數,這個引數用來指定資料庫鏈資訊。
[oracle@yanttest ~]$ export ORACLE_SID=testzj
[oracle@yanttest ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 5月 7 15:31:47 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> select directory_path
2 from dba_directories
3 where directory_name = 'D_OUTPUT';
未選定行
SQL> create directory d_output as '/home/oracle';
目錄已建立。
SQL> grant read, write on directory d_output to test;
授權成功。
在遠端資料庫做好DIRECTORY的準備工作。
bash-2.03$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 3月 7 19:15:24 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> grant execute on dbms_file_transfer to test;
授權成功。
SQL> grant read, write on directory d_output to test;
授權成功。
SQL> conn test/test
已連線。
SQL> create database link testzj
2 connect to test
3 identified by test
4 using '172.25.13.231/testzj';
資料庫連結已建立。
SQL> begin
2 sys.dbms_file_transfer.put_file(
3 'D_OUTPUT',
4 'spfiletestrac.ora',
5 'D_OUTPUT',
6 'spfiletestzj.ora',
7 'TESTZJ');
8 end;
9 /
PL/SQL 過程已成功完成。
已經將本地/export/home/oracle目錄下的spfiletestrac.ora檔案複製到遠端站點,下面在利用GET_FILE,從遠端讀取檔案:
SQL> begin
2 sys.dbms_file_transfer.get_file(
3 'D_OUTPUT',
4 'spfiletestzj.ora',
5 'TESTZJ',
6 'D_OUTPUT',
7 'spfiletestrac.bak');
8 end;
9 /
PL/SQL 過程已成功完成。
需要注意,這個過程的執行要求本地資料庫和遠端資料庫的版本都是10g以上,否則會出現錯誤:
SQL> create database link testdata94.emedchina.com
2 connect to test
3 identified by test
4 using '172.25.88.94/testdata';
資料庫連結已建立。
SQL> select * from v$version@testdata94.emedchina.com;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
SQL> col directory_path format a50
SQL> set pages 100 lines 120
SQL> select directory_name, directory_path from all_directories@testdata94.emedchina.com;
DIRECTORY_NAME DIRECTORY_PATH
------------------------------ --------------------------------------------------
DIR_TEST /home/oracle/test
D_TEST /data/oradata/testdata
SQL> exec sys.dbms_file_transfer.put_file('D_OUTPUT', 'spfiletestzj.ora', 'D_TEST', 'spfiletestzj.ora', 'TESTDATA94.EMEDCHINA.COM')
BEGIN sys.dbms_file_transfer.put_file('D_OUTPUT', 'spfiletestzj.ora', 'D_TEST', 'spfiletestzj.ora', 'TESTDATA94.EMEDCHINA.COM'); END;
*
第 1 行出現錯誤:
ORA-03115: 不支援的網路資料型別或表示法
ORA-02063: 緊接著 line (起自 TESTDATA94.EMEDCHINA.COM)
ORA-06512: 在 "SYS.DBMS_FILE_TRANSFER", line 60
ORA-06512: 在 "SYS.DBMS_FILE_TRANSFER", line 168
ORA-06512: 在 line 1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-594462/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle10g新增DBMS_FILE_TRANSFER包(一)Oracle
- Oracle10g新增DBMS_MONITOR包(二)Oracle
- Oracle10g新增DBMS_MONITOR包Oracle
- Oracle10g新增DBMS_MONITOR包(一)Oracle
- 利用DBMS_FILE_TRANSFER包實現遠端備份
- Oracle10G新增NO提示Oracle
- 版本包新增地址
- 在Oracle10g 新增ASM磁碟組OracleASM
- Oracle10g新增CONVERT語法Oracle
- Oracle10g新增BLOCK CHANGE TRACKING功能OracleBloC
- 在Oracle10g RAC下新增ASM磁碟組OracleASM
- Oracle10g 建立物理DataGuard(二)Oracle
- 新增節點oracle10g rac(rhel4)_clusterwareOracle
- 新增節點oracle10g rac(rhel4)_databaseOracleDatabase
- oracle10g simpe AQ step by step(二)Oracle
- Oracle10g新增的檢視dba_tablespace_usage_metricsOracle
- 新增節點oracle10g rac(rhel4)_instanceOracle
- Oracle 12C xtts and dbms_file_transferOracleTTS
- Migrate database to Exadata with DBMS_FILE_TRANSFERDatabase
- 新增jar包到本地Maven倉庫JARMaven
- linux新增或刪除元件包Linux元件
- 【RAC】Oracle10g rac新增刪除節點命令參考Oracle
- Oracle10g RAC環境OCR的新增、刪除、備份Oracle
- Oracle10g RAC環境VoteDisk的新增、刪除、備份Oracle
- oracle包的使用(二)Oracle
- cmake使用教程(二)-新增庫
- using dbms_file_transfer transportable tablespace between asmASM
- 使用dbms_file_transfer轉換ASM檔案ASM
- 轉淘寶流雲dbms_file_transfer package usagePackage
- DBMS_FILE_TRANSFER Package in Oracle Database 10gPackageOracleDatabase
- oracle10g單例項轉化為oracle10g rac(二)__多災多難Oracle單例
- Netty如何解決粘包拆包?(二)Netty
- oracle dbms包和其他包的使用大全(二)Oracle
- 併發包系列二—— CopyOnWriteArrayList
- Oracle10G LOGMNR捕獲不到記錄(二)Oracle
- Oracle10g rac 必須掌握的知識二Oracle
- 使用dbms_file_transfer從asm中抽取檔案ASM
- win10怎麼新增使用公文包功能_windows10右鍵新增公文包選項步驟Win10Windows