【UTL_FILE】使用UTL_FILE包生成檔案並寫入資料
使用UTL_FILE包可以實現資料庫向檔案寫入資料的功能。本文給出寫出檔案的基本方法。
1.建立檔案存放的目錄
ora10g@secdb /home/oracle$ mkdir secooler
ora10g@secdb /home/oracle$ cd secooler/
ora10g@secdb /home/oracle/secooler$ ls -ltr
total 0
2.在資料庫中建立DIRECTORY
ora10g@secdb /home/oracle/secooler$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jun 15 21:06:09 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
sys@ora10g> create or replace directory dir_secooler as '/home/oracle/secooler';
Directory created.
sys@ora10g> grant read, write on directory dir_secooler to public;
Grant succeeded.
此時dir_secooler建立成功,指向目錄“/home/oracle/secooler”,並且任何使用者都可以使用這個DIRECTORY。
3.使用UTL_FILE包向檔案中寫入資訊
1)連線到sec使用者
sys@ora10g> conn sec/sec
Connected.
2)準備PL/SQL
declare
v_f1 utl_file.file_type;
begin
v_f1 := utl_file.fopen('DIR_SECOOLER','secooler.dat','w');
UTL_FILE.PUT_LINE(v_f1,'Secooler writes this message.');
utl_file.fclose(v_f1);
end;
/
3)執行PL/SQL
sec@ora10g> declare
2 v_f1 utl_file.file_type;
3 begin
4 v_f1 := utl_file.fopen('DIR_SECOOLER','secooler.dat','w');
5 UTL_FILE.PUT_LINE(v_f1,'Secooler writes this message.');
6 utl_file.fclose(v_f1);
7 end;
8 /
PL/SQL procedure successfully completed.
4)檢查執行結果
ora10g@secdb /home/oracle/secooler$ ls -ltr
total 4.0K
-rw-r--r-- 1 oracle oinstall 30 Jun 15 21:58 secooler.dat
ora10g@secdb /home/oracle/secooler$ cat secooler.dat
Secooler writes this message.
可見,secooler.dat檔案已經建立成功,同時資料已經寫入。
4.使用UTL_FILE包建立問題
注意在使用UTL_FILE包用到DIRECTORY資料庫物件時,名字一定要大寫,否則會遭遇“ORA-29280: invalid directory path”錯誤。
sec@ora10g> declare
2 v_f1 utl_file.file_type;
3 begin
4 v_f1 := utl_file.fopen('dir_secooler','secooler.dat','w');
5 UTL_FILE.PUT_LINE(v_f1,'Secooler writes this message.');
6 utl_file.fclose(v_f1);
7 end;
8 /
declare
*
ERROR at line 1:
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 33
ORA-06512: at "SYS.UTL_FILE", line 436
ORA-06512: at line 4
5.關於UTL_FILE包參考資訊
官方文件參考連結:
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_file.htm#BABDEJDH
6.小結
本文以實現使用UTL_FILE包生成檔案並寫入資訊的簡單功能為例展示了UTL_FILE包的魅力。以此為基礎可以實現更多有價值的需求。
Good luck.
secooler
11.06.15
-- The End --
1.建立檔案存放的目錄
ora10g@secdb /home/oracle$ mkdir secooler
ora10g@secdb /home/oracle$ cd secooler/
ora10g@secdb /home/oracle/secooler$ ls -ltr
total 0
2.在資料庫中建立DIRECTORY
ora10g@secdb /home/oracle/secooler$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jun 15 21:06:09 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
sys@ora10g> create or replace directory dir_secooler as '/home/oracle/secooler';
Directory created.
sys@ora10g> grant read, write on directory dir_secooler to public;
Grant succeeded.
此時dir_secooler建立成功,指向目錄“/home/oracle/secooler”,並且任何使用者都可以使用這個DIRECTORY。
3.使用UTL_FILE包向檔案中寫入資訊
1)連線到sec使用者
sys@ora10g> conn sec/sec
Connected.
2)準備PL/SQL
declare
v_f1 utl_file.file_type;
begin
v_f1 := utl_file.fopen('DIR_SECOOLER','secooler.dat','w');
UTL_FILE.PUT_LINE(v_f1,'Secooler writes this message.');
utl_file.fclose(v_f1);
end;
/
3)執行PL/SQL
sec@ora10g> declare
2 v_f1 utl_file.file_type;
3 begin
4 v_f1 := utl_file.fopen('DIR_SECOOLER','secooler.dat','w');
5 UTL_FILE.PUT_LINE(v_f1,'Secooler writes this message.');
6 utl_file.fclose(v_f1);
7 end;
8 /
PL/SQL procedure successfully completed.
4)檢查執行結果
ora10g@secdb /home/oracle/secooler$ ls -ltr
total 4.0K
-rw-r--r-- 1 oracle oinstall 30 Jun 15 21:58 secooler.dat
ora10g@secdb /home/oracle/secooler$ cat secooler.dat
Secooler writes this message.
可見,secooler.dat檔案已經建立成功,同時資料已經寫入。
4.使用UTL_FILE包建立問題
注意在使用UTL_FILE包用到DIRECTORY資料庫物件時,名字一定要大寫,否則會遭遇“ORA-29280: invalid directory path”錯誤。
sec@ora10g> declare
2 v_f1 utl_file.file_type;
3 begin
4 v_f1 := utl_file.fopen('dir_secooler','secooler.dat','w');
5 UTL_FILE.PUT_LINE(v_f1,'Secooler writes this message.');
6 utl_file.fclose(v_f1);
7 end;
8 /
declare
*
ERROR at line 1:
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 33
ORA-06512: at "SYS.UTL_FILE", line 436
ORA-06512: at line 4
5.關於UTL_FILE包參考資訊
官方文件參考連結:
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_file.htm#BABDEJDH
6.小結
本文以實現使用UTL_FILE包生成檔案並寫入資訊的簡單功能為例展示了UTL_FILE包的魅力。以此為基礎可以實現更多有價值的需求。
Good luck.
secooler
11.06.15
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-700095/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- UTL_FILE包,將查詢結果寫入檔案
- oracle利用utl_file包來讀寫檔案Oracle
- UTL_FILE遍歷檔案
- ORACLE UTL_FILE檔案包的應用,檔案I/O操作Oracle
- utl_file包的應用
- Oracle內建包UTL_FILE使用說明Oracle
- clob utl_file 匯出成TXT檔案
- Oracle - UTL_FILE包之詳解Oracle
- UTL_FILE包的簡單例子單例
- Oracle - UTL_FILE包之BLOB匯入和匯出Oracle
- 使用utl_file做選擇性資料匯出
- Oracle 11g UTL_FILE 包的使用方法Oracle
- oracle utl_fileOracle
- 使用 UTL_FILE匯出TAB和逗號分割資料
- ORACLE百萬資料匯入匯出解決方法(LOADER、UTL_FILE)Oracle
- Export with Spool and Parallel Utl_FileExportParallel
- Android建立資料夾及檔案並寫入資料Android
- [轉自楊廷錕]UTL_FILE包的簡單例子單例
- Using Create directory & UTL_FILE in OracleOracle
- 讀取檔案流並寫入檔案流
- java資料list寫入檔案Java
- 用 ABAP 新建本地 Excel 檔案並寫入資料試讀版Excel
- iOS自定義log並寫入檔案iOS
- python讀取並寫入mat檔案Python
- python如何開啟帶變數名的txt檔案並寫入資料Python變數
- Python連線mongodb提取部分欄位內資料並寫入txt檔案PythonMongoDB
- 入門計劃->使用(C++庫)ofstream寫檔案資料 (轉)C++
- (OAF)jdeveloper整合log4j並將日誌輸出到指定檔案並寫入資料庫Developer資料庫
- 使用pd從資料庫逆向生成pdm檔案資料庫
- 遞迴遍歷磁碟下的某一資料夾中所有檔案,並copy檔案生成檔案和帶資料夾的檔案遞迴
- 工作當中碰到的一個UTL_FILE的問題
- Laravel 遷移檔案生成包Laravel
- 從cmd中匯入.SQL檔案並建立資料庫SQL資料庫
- Master Note For PL/SQL UTL_FILE Package (Doc ID 1155024.1)ASTSQLPackage
- (資料科學學習手札59)從抓取資料到生成shp檔案並展示資料科學
- 使用Busybox製作最小檔案系統並燒寫入開發板
- DBWR 寫資料檔案 (zt)
- C語言產生正弦波,將資料寫入檔案中並用gnuplot作圖C語言