【问题标题】:Ora-29283 error on 11g11g 上的 Ora-29283 错误
【发布时间】:2016-11-08 16:23:27
【问题描述】:

是否可以从 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;

【问题讨论】:

  • 是的,在创建目录后我授予它访问权限:授予读取权限,将目录 my_DIR 写入 my_user;

标签: oracle oracle11g utl-file


【解决方案1】:

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

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

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

【讨论】:

  • 是的,我能够从我的数据库中保存检索数据,并通过 .NET 将它们保存为 C:\LOB 中的图像,谢谢您的声明
猜你喜欢
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 2018-11-27
  • 2016-11-22
  • 2016-04-18
  • 2011-08-26
  • 2013-11-29
  • 2021-02-11
相关资源
最近更新 更多