我必须使用utl_file
访问其他计算机中的远程文件。
这就是我所做的:
在远程PC中创建具有Adminstrator + Users + ora_db配置文件的用户,在我的PC中创建具有相同角色的同一用户。
使用此管理员帐户运行Oracle服务
在Windows
使用以下命令配置和访问文件:
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
我做错了什么?