【问题标题】:I can't access files in different servers than database server name我无法访问与数据库服务器名称不同的服务器中的文件
【发布时间】:2019-05-10 18:12:00
【问题描述】:

我正在尝试创建一个访问文件的目录,但出现了访问被拒绝的错误消息。

更具体地说,我想从 plsql 访问不同于 db 服务器的服务器。

服务器的路径是:\192.168.3.15\k$\INPUT_FILES\

我尝试创建如下目录: 创建或替换目录 'TEST' 为 '\192.168.3.15\k$\INPUT_FILES';

通过 AS_READ_XLSX 包访问文件

SELECT *
  FROM TABLE( AS_READ_XLSX.READ( AS_READ_XLSX.FILE2BLOB( 'TEST', 'aaa.xlsx' );

但我得到错误

ORA-22288: 文件或 LOB 操作 FILEOPEN 失败

访问被拒绝。

ORA-06512:“AS_READ_XLSX”,第 361 行

function file2blob
    ( p_dir varchar2
    , p_file_name varchar2
    )
  return blob
  is
    file_lob bfile;
    file_blob blob;
  begin  
    file_lob := bfilename( p_dir, p_file_name );
    dbms_lob.open( file_lob, dbms_lob.file_readonly );
    dbms_lob.createtemporary( file_blob, true );
    dbms_lob.loadfromfile( file_blob, file_lob, dbms_lob.lobmaxsize );
    dbms_lob.close( file_lob );
    return file_blob;
  exception
    when others then
      if dbms_lob.isopen( file_lob ) = 1
      then
        dbms_lob.close( file_lob );
      end if;
      if dbms_lob.istemporary( file_blob ) = 1
      then
        dbms_lob.freetemporary( file_blob );
      end if;
      raise;   --361 LINE
  end;

有什么想法吗?

【问题讨论】:

    标签: oracle server


    【解决方案1】:

    我还不能发表评论,所以我正在写一个答案。 您是否检查过 - 我想 - Linux 服务器中的 oracle/dba 用户是否有权打开该文件?尝试向服务器中的所有用户授予对该文件的访问权限。 这在我身上发生了好几次。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多