1.读文件举例: -- 环境 windows 2000 server + oracle 8.1.7 -- 先在 init.ora中的参数utl_file_dir -- 例: utl_file_dir=(d:\test,e:\\,e:\share) --
set serveroutput on size 1000000 format wrapped
create or replace procedure read_txtfile( -- 读一个文本文件,并在sqlplus中显示其内容 path in varchar2, name in varchar2 ) as l_output utl_file.file_type; str varchar2(1000); begin l_output:=utl_file.fopen(path,name,'r',2000); -- 每行最大字节数最多为32K bytes --l_output:=utl_file.fopen(path,name,'r'); -- 每行最大字节数最多为1023 bytes loop utl_file.get_line(l_output,str); dbms_output.put_line(str); end loop; exception when no_data_found then utl_file.fclose(l_output); when utl_file.invalid_path then raise_application_error(-20001,'INVALID_PATH!'); when utl_file.invalid_mode then raise_application_error(-20002,'INVALID_MODE!'); when utl_file.invalid_filehandle then raise_application_error(-20003,'INVALID_FILEHANDLE!'); when utl_file.invalid_operation then raise_application_error(-20004,'INVALID_OPERATION!'); when utl_file.read_error then raise_application_error(-20005,'READ_ERROR!'); when utl_file.write_error then raise_application_error(-20006,'WRITE_ERROR!'); when utl_file.internal_error then raise_application_error(-20007,'INTERNAL_ERROR!'); when others then str:=sqlerrm(sqlcode); dbms_output.put_line(str); end; /