应该是你的文件在该目录下不存在 !检查一下!create or replace procedure p_testa is
file1 utl_file.file_type;
begin
  file1:=utl_file.fopen('d:\','a.txt','r',30000);
  utl_file.fclose(file1);
  dbms_output.put_line('Exec right!');
end p_testa;SQL> exec p_testa;
Exec right!PL/SQL procedure successfully completed

解决方案 »

  1.   

    少加一个\
    v_fh:=utl_file.fopen('C:\Temp\',pFileName,'r');
    加上就可以了!
      

  2.   

    我怀疑是不是你的变量pFileName的值不对呀,你单步测试一下,看这个变量的值是多少,问题估计出在这里,要不然不会出现这样的问题呀!我这里都是完全可以的,或者你把变量直接用文件名代替看一下就知道了!
      

  3.   

    是不是你没有权限导致的,你把用户的权限设置成DBA再试一下,搞的也有点糊涂了!
      

  4.   

    I know 了,是系统服务器和数据库不在一个地方,当然读不到文件了
    真是糊涂