数据库oracle10g,存储过程中使用
utl_file.fopen('csv_dir','csvfilename.csv','W');
一句,其中'csv_dir'是用下面语句产生的
create or replace directory csv_dir as 'c:\temp\csv'
其中'c:\temp\csv'为实际存在的目录。
可是执行存储过程出错,总报下面错误
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 33
ORA-06512: at "SYS.UTL_FILE", line 436
ORA-06512: at "ADMIN.CSVTEST", line 14
ORA-06512: at line 1求教高手这是什么原因导致的?!
整个的存储过程如下:CREATE OR REPLACE  PROCEDURE "ADMIN"."CSVTEST" AS
    NFNO        UTL_FILE.FILE_TYPE;   --  csv file type
    BEGIN      --  CSV file open
      NFNO := UTL_FILE.FOPEN('csv_dir', 'xumztest.csv', 'A');          UTL_FILE.PUT_LINE(NFNO, 'a,b,c,d');    -- CSV file close      UTL_FILE.FCLOSE(NFNO);  END CSVTEST;

解决方案 »

  1.   

    ORA-29280: invalid directory path
    ORA-06512: at "SYS.UTL_FILE", line 33是否是目录访问权限不够所致
      

  2.   

    把UTL_FILE.FOPEN('csv_dir', 'xumztest.csv', 'A');
    其中的小写字符改成大写就可以了
      

  3.   

    http://blog.csdn.net/dlxu/archive/2006/01/19/583619.aspx这个上面可以解答
      

  4.   

    刚看过书,UTL_FILE.FOPEN中的directory必须大写
      

  5.   

    alter system set utl_file_dir='*';