需要使用Oracle stored procedure 使用UTL_FILE這類需要讀取實體檔案的需要先設定DIRECTORY
DIRECTORY語法如下
CREATE [OR REPLACE] DIRECTORY directory AS 'pathname';
例如:
create or replace directory exp_dir as 'c:\tmp';
賦予權限,語法如下
GRANT READ[,WRITE] ON DIRECTORY directory TO username;
例如:
grant read, write on directory exp_dir to ods;
範例:
create or replace directory UTL_FILE_DIR as 'c:\tmp\UTL_FILE_DIR';
寫入檔案
SQL> declare
2 fhandle utl_file.file_type;
3 begin
4 fhandle := utl_file.fopen('UTL_FILE_DIR', 'ex.txt', 'w');
5 utl_file.put_line(fhandle , '第一行');
6 utl_file.put_line(fhandle , '第二行');
7 utl_file.fclose(fhandle);
8 end;
9 /
讀取檔案
SQL> declare
2 fhandle utl_file.file_type;
3 fp_buffer varchar2(4000);
4 begin
5 fhandle := utl_file.fopen ('UTL_FILE_DIR','ex.txt', 'R');
6
7 utl_file.get_line (fhandle , fp_buffer );
8 dbms_output.put_line(fp_buffer );
9 utl_file.get_line (fhandle , fp_buffer );
10 dbms_output.put_line(fp_buffer );
11 utl_file.fclose(fhandle);
12 end;
13 /
查詢dba_directories查看所有directory
select * from dba_directories;
可以使用drop directory删除路徑
drop directory exp_dir;
UTL_FILE用法可參考:http://www.verydemo.com/demo_c158_i28384.html
請先 登入 以發表留言。