我正在尝试从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;
答案 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);