11g 上的 Ora-29283 错误

Ora-29283 error on 11g

是否可以从 Oracle 数据库访问我 PC 上的文件夹?换句话说,我的本地机器上没有安装数据库,我在我的 PC 'C:\LOB' 上创建了一个文件夹,我想在其中保存从数据库检索到的图像,但它返回一个

ORA-29283 error: invalid file operation.

我确定该目录已创建,因为我可以在我的数据库的目录文件夹中看到它。那么可能是什么问题呢?是因为文件夹是在我的电脑上创建的,而数据库在其他地方吗? 以下是我的程序:

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('MY_DIR', file_name, 'WB', raw_max_size);
   -- Here it stops working ! -- 
   ....
   utl_file.fclose(file_ref);

END BLOB_UPDATE;

PL/SQL 在数据库系统中是 运行,即在服务器上。它只能访问服务器上的文件。它不能是你电脑上的文件。

即使您已经在 Oracle (CREATE DIRECTORY ...) 中定义目录并授予您的用户足够的访问权限,它也会失败,因为 Oracle 将尝试访问服务器上的 C:\LOB,而不是你的电脑。

您要实现的目标无法在服务器端解决,即无法在 PL/SQL 中解决。您必须在客户端(即在您的 PC 上)编写 运行s 的代码,例如一些 Java 或 .NET 程序。