UNIX oracle 10g能用utl_file包读取文件数据吗?

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

UNIX Oracle 10g能用utl_file包读取文件数据吗?

我在WINDOW 下ORACLE 8i利用utl_file可以读取文本文件的数据,我本人测试通过,

但是在UNIX oracle 10g不行呀!出错!

begin loadfiledata('d:\ora','1.txt'); end;

ORA-29280: 目录路径无效

ORA-06512: 在 "SYS.UTL_FILE", line 33

ORA-06512: 在 "SYS.UTL_FILE", line 436

ORA-06512: 在 "WTY.LOADFILEDATA", line 20

ORA-06512: 在 line 1

=====================

我的存储过程是loadfiledata:

create or replace procedure loadfiledata(p_path varchar2,p_filename varchar2) is

v_filehandle utl_file.file_type; --定义一个文件句柄

v_text varchar2(100); --存放文本

v_name test.name%type;

v_id test.autoid%type;

v_firstlocation number;

v_secondlocation number;

v_totalinserted number;

begin

if (p_path is null or p_filename is null) then

goto to_end;

end if;

v_totalinserted:=0;

/*open specified file*/

v_filehandle:=utl_file.fopen(p_path,p_filename,'r'); ----打开文件,读数据

loop

begin

utl_file.get_line(v_filehandle,v_text);

exception

when no_data_found then

exit;

end ;

v_firstlocation:=instr(v_text,',',1,1);---文本文件第一个','位置

v_id:=substr(v_text,1,v_firstlocation-1);---截取文本文件第一个','之前字符串。

v_name:=substr(v_text,v_firstlocation+1);

/*插入数据库操作*/

begin

insert into test

values (v_id,v_name);

if sql%rowcount=0 then

rollback;

else

commit;

end if;

exception

when others then

rollback;

end;

end loop;

<<to_end>>

utl_file.fclose(v_filehandle);

null;

end loadfiledata;

===========

loadfiledata存储过程在WINDOW ORALCE 8I运行正常,但是为什么在UNIX ORACLE 1OG 不行,

是不是在UNIX ORACLE 1OG 对utl_file包发生变化呀!

大家帮帮忙呀!

我的个人网站http://www.kao99.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航