11g

时间:2016-11-08 08:15:01

标签: oracle oracle11g utl-file

是否可以从oracle数据库访问我电脑上的文件夹?换句话说,数据库没有安装在我的本地机器上,我在我的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;

1 个答案:

答案 0 :(得分:3)

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

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

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