在Windows

时间:2016-02-29 16:15:49

标签: oracle oracle11g remote-access utl-file

我必须使用utl_file访问其他计算机中的远程文件。

这就是我所做的:

  1. 在远程PC中创建具有Adminstrator + Users + ora_db配置文件的用户,在我的PC中创建具有相同角色的同一用户。

  2. 使用此管理员帐户运行Oracle服务

  3. 在Windows

  4. 下映射远程目录
  5. 使用以下命令配置和访问文件:

  6. create or replace directory REMOTE_LOG as '\\remote_shared_dir\log';
    
    declare
        f   UTL_FILE.FILE_TYPE;
        line    VARCHAR2(32767) ;
    
    begin
    
        BEGIN
          f := UTL_FILE.FOPEN('REMOTE_LOG','toto.txt','R',32764);
        EXCEPTION WHEN OTHERS THEN
          dbms_output.put_line('err '||sqlerrm);
        END;
    
        UTL_FILE.GET_LINE( f,  line );                
        UTL_FILE.FCLOSE( f ) ;                
    end;
    

    但它失败了:

    [Error] Execution (7: 3): ORA-29282: invalid file ID
    ORA-06512: at "SYS.UTL_FILE", line 735
    ORA-06512: at line 13
    

    当我删除异常处理程序时,我会看到:

    [Error] Execution (7: 3): ORA-29283: invalid file operation
    ORA-06512: at "SYS.UTL_FILE", line 536
    ORA-29283: invalid file operation
    ORA-06512: at line 8
    

    我做错了什么?

0 个答案:

没有答案