2
我已经建立2程序和Java源执行的Unix Sun Solaris的命令,使用与
一个过程调用java类TestHostCommand
PROCEDURE TEST2
(p_command IN Varchar2)
AS LANGUAGE JAVA
NAME 'TestHostCommand.executeCommand(java.lang.String)';
Java源代码的权限ORACLE PL/SQL的麻烦是:
import java.io.*;
public class TestHostCommand
{
public void executeCommand(String command)
{
Runtime rt = Runtime.getRuntime();
Process p = null;
try
{
p = rt.exec("ls > /Orion/list/list.txt");
return;
} catch (IOException ioe)
{
System.out.println("Error executing file");
}
}
}
而另一个过程是授予权限但它生成不正确:
PROCEDURE GRANT_PERMISSION
(grantee IN VARCHAR2,
permission_type IN VARCHAR2,
permission_name IN VARCHAR2,
permission_action IN VARCHAR2)
IS
BEGIN
DBMS_JAVA.grant_permission ('ORION', 'java.io.FilePermission',
'<>', 'read ,write, execute, delete');
DBMS_JAVA.grant_permission ('ORION', 'SYS:java.lang.RuntimePermission',
'writeFileDescriptor', '');
DBMS_JAVA.grant_permission ('Orion', 'SYS:java.lang.RuntimePermission',
'readFileDescriptor', '');
END;
错误是无效的对象。
由于
感谢您的回答。因此,我需要通过DBA设置特权,才能为我工作。谢谢 – CRL88
我目前得到这个错误: 8:22:50执行失败:ORA-29532:Java调用被未捕获的Java终止异常:java.lang.SecurityException:策略表更新java.io.FilePermission,TestHostCommand – CRL88