0

我正在尝试从 oracle 数据库中选择字节并将它们转换为图像文件。当我编写 oracle 程序时,它在 UTL_FILE.fopen 中停止并返回 ORA-29280 错误。Oracle 社区说这个错误是因为操作系统级别的用户可能没有写入文件夹的权限,或者我们应该使用大写字母。但是对于建议 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;
4

1 回答 1

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); 
于 2016-11-07T09:51:56.307 回答