无法从oracle打开文件

时间:2016-11-07 09:41:40

标签: .net oracle file-access lob utl-file

我正在尝试从oracle数据库中选择字节并将它们转换为图像文件。当我编写oracle过程时,它在UTL_FILE.fopen中停止并返回ORA-29280错误。 Oracle社区说这个错误是由于OS级用户可能没有写入文件夹的权限,或者我们应该使用upper_cases。但是对于建议1,我尝试使用.Net访问同一文件夹并且成功创建了图像文件,对于建议2我尝试使用大写但我仍然面临同样的错误。可能是什么问题呢?为什么我可以从.Net而不是从oracle创建文件?以下是我的代码:

CREATE OR REPLACE PROCEDURE BLOB_UPDATE (file_name in varchar) IS

    file_ref UTL_FILE.file_type;
    raw_max_size constant number := 32767;

 begin

   file_ref := UTL_FILE.fopen('C:\LOB', file_name, 'WB', raw_max_size);
   -- Here it stops working ! -- 
   ....
   utl_file.fclose(file_ref);

END BLOB_UPDATE;

1 个答案:

答案 0 :(得分:0)

请在您的数据库上执行:

create or replace directory DIR as 'C:\LOB'
grant read, write on directory DIR to your_user

然后通过以下方式访问程序中的目录:

file_ref := UTL_FILE.fopen('DIR', file_name, 'WB', raw_max_size);