无法从 oracle 打开文件
Cannot open file from oracle
我正在尝试从 oracle 数据库中提取 select 字节并将它们转换为图像文件。当我编写 oracle 过程时,它在 UTL_FILE.fopen 和 returns 中停止,出现 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;
请在您的数据库上执行:
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);
我正在尝试从 oracle 数据库中提取 select 字节并将它们转换为图像文件。当我编写 oracle 过程时,它在 UTL_FILE.fopen 和 returns 中停止,出现 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;
请在您的数据库上执行:
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);