通过 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
6F1 := utl_file.fopen('USER_DIR', '01.txt', 'R'); -- 打开文本文件,R 代表打开模式为读取
7utl_file.get_line(F1, V1); -- 读取文本中的内容到 V1 变量中
8utl_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 过程已成功完成。