1

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

ORA-29283 错误: 无效的文件操作。

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

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;
4

1 回答 1

3

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

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

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

于 2016-11-08T08:20:13.767 回答