Oracle 11g UTL_FILE 包的使用方法

feelpurple發表於2016-02-03
透過 UTL_FILE 包,PL/SQL 程式可以讀寫作業系統上的文字檔案。

建立目錄並授予讀寫許可權
SQL> create directory user_dir as 'E:\app\Administrator\oradata\dir';

目錄已建立。

SQL> grant read on directory user_dir to public;

授權成功。

SQL> grant write on directory user_dir to public;

授權成功。

SQL> select * from dba_directories;

OWNER DIRECTORY_NAME                 DIRECTORY_PATH
----- ------------------------------ -------------------------------------------------------------------------------
SYS   ORACLE_OCM_CONFIG_DIR          E:\app\Administrator\product\11.2.0\dbhome_1/ccr/state
SYS   DATA_PUMP_DIR                  E:\app\Administrator/admin/flame/dpdump/
SYS   MEDIA_DIR                      E:\app\Administrator\product\11.2.0\dbhome_1\demo\schema\product_media\
SYS   XMLDIR                         c:\ade\aime_dadvfh0169\oracle/rdbms/xml
SYS   DATA_FILE_DIR                  E:\app\Administrator\product\11.2.0\dbhome_1\demo\schema\sales_history\
SYS   LOG_FILE_DIR                   E:\app\Administrator\product\11.2.0\dbhome_1\demo\schema\log\
SYS   SS_OE_XMLDIR                   E:\app\Administrator\product\11.2.0\dbhome_1\demo\schema\order_entry\
SYS   SUBDIR                         E:\app\Administrator\product\11.2.0\dbhome_1\demo\schema\order_entry\/2002/Sep
SYS   USER_DIR                       E:\app\Administrator\oradata\dir
已選擇9行。

在 E:\app\Administrator\oradata\dir 目錄下建立一個名詞為 01.txt 的文字檔案,在裡面寫上一段文字

透過 UTL_FILE 包來讀取 01.txt 裡面的內容

SQL> declare
  2    V1 varchar2(32767);
  3    F1 utl_file.file_type;
  4    --v_text varchar2(500);
  5  begin
  6    F1 := utl_file.fopen('USER_DIR', '01.txt', 'R');  -- 開啟文字檔案,R 代表開啟模式為讀取
  7    utl_file.get_line(F1, V1);  -- 讀取文字中的內容到 V1 變數中
  8    utl_file.fclose(F1);  -- 關閉文字檔案
  9    dbms_output.put_line(V1);  --輸出文字里面的內容
 10  end;
 11  /
Previously, the mysql-server sub-packages did not contain the logrotate script. Consequently, the log rotation had to be
 has been provided
by the mysql-server sub-packages, and users can use the script to log into the mysqld.log file by uncommenting appropria
PL/SQL 過程已成功完成。

  1  declare
  2    V1 varchar2(32767);
  3    F1 utl_file.file_type;
  4  begin
  5    F1 := utl_file.fopen('USER_DIR', '01.txt', 'R');
  6    utl_file.get_line(F1, V1, 30);
  7    utl_file.fclose(F1);
  8    dbms_output.put_line(V1);
  9* end;
SQL> /
Previously, the mysql-server s
PL/SQL 過程已成功完成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1986008/,如需轉載,請註明出處,否則將追究法律責任。

相關文章