我是pl-sql的新手,现在我正在编写一个使用Utl_File.Fopen函数的pl-sql程序(在Oracle11上),现在我对以下异常感到疯狂。
这是我的程序:
Procedure MyFirstProcedure
is
begin
--somethings others
c_filename := 'test';
v_handle := Utl_File.Fopen (
location => c_locationScript,
filename => c_filenameScript,
open_mode => 'w',
max_linesize => 256 );
exception
when others then
DBMS_OUTPUT.PUT_LINE('Exception: SQLCODE=' || SQLCODE || ' SQLERRM=' || SQLERRM);
end MyFirstProcedure;
我得到以下异常:
Exception: SQLCODE=-29283 SQLERRM=ORA-29283: operazione file non valida
现在我执行以下操作:
CALL dbms_java.grant_permission( 'MYUSER', 'SYS:java.io.FilePermission', '/home/test', 'read' )
CALL dbms_java.grant_permission( 'MYUSER', 'SYS:java.io.FilePermission', '/home/test', 'write' )
在文件系统中,home和test都有一个rwx权限,但我继续得到异常。
关于如何解决的一些建议?
答案 0 :(得分:0)
这是来自Oracle对错误代码的描述:
Cause: An attempt was made to
read from a file or directory that
does not exist, or file or directory
access was denied by the operating system.
UTL_FILE只能访问驻留在CREATE DIRECTORY命令映射的文件夹中的文件。由init.ora参数utl_file_dir交替映射。该文件夹及其中的文件必须可供服务器上的oracle帐户访问。
Dbms_java.grant ...仅适用于与存储的java程序有关的权限。