SQL> create or replace procedure to_txt2 is
2 rowval varchar2(1000);
3 I_output utl_file.file_type;
4 begin
5 I_output:=utl_file.fopen('UTLFILEDIR','test.txt','w');
6 for my_cur in (select * from t) loop
7 select rpad(my_cur.abnormal_type_code,10)
8 ||rpad(my_cur.abnormal_name,20)
9 ||rpad(to_char(my_cur.app_type_code),10)
10 ||rpad(my_cur.handle_time_limit,10)
11 ||rpad(my_cur.dpt_no_deal,10)
12 ||rpad(my_cur.formu_code,10)
13 ||rpad(my_cur.cbj_err_code,10)
14 into rowval from dual;
15 utl_file.put_line(I_output,rowval);
16 end loop;
17 utl_file.fclose(I_output);
18 end;
19 /
Procedure created
SQL> select count(*) from t
2 /
COUNT(*)
----------
10
SQL> create or replace directory UTLFILEDIR as 'e:\';
Directory created
SQL> execute to_txt2;
PL/SQL procedure successfully completed
SQL> show err
No errors
但是呢,在e盘没生成test.txt,问题出在哪个,请高手指教
v_sql_2:='insert into xxxxxxxxx';
execute immediate v_sql_2;
commit;
--open file
file_handle:=utl_file.fopen(location=>'xxxxx',filename=>'xxxxxxxxxx.txt',open_mode=>'A');
--write file
utl_file.put_line(file_handle,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||' '||v_sql_2);
--close file
utl_file.fclose(file_handle);