从PL / SQL调用java时出错

时间:2017-05-23 11:56:14

标签: java oracle oracle-ebs

当我从PL / SQL调用JAVA类时,我得到以下错误

show parameters shared_servers

我已经提到了金属片说明-Doc:1420943.1

这要求检查值(loadjava -user apps/password - force -verbose -resolve java.class)并设置为零,如果它不为零。   但该值已经为0。

请帮助我确定导致问题的原因。

-----------------------更多信息---------------------- -------------

我们使用l_retCode := initialize(para_1 => l_para1, Para_2 => l_para2, para_3 => l_para3); 将java类加载到Oracle DB中。

数据库版本12c。

PL / SQL:

function initialize(para_1 VARCHAR2, para_2 VARCHAR2, para_3 VARCHAR2)
return NUMBER as LANGUAGE JAVA NAME
'com.snlp.XXWClass.initialize(java.lang.string,java.lang.string,java.lang.string) return int'

初始化函数定义如下

public static int initialize(s String, s1 String , s2 String){
  // logic goes here
}

Java代码:

expr

2 个答案:

答案 0 :(得分:0)

1)在DB Error:(21, 29) error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such collation sequence: LOCALIZED) set serveroutput on中它允许在db中查看java堆栈跟踪。

2)发布错误的java类。字符大小很重要。更改java.lang.string。到java.lang.String。

答案 1 :(得分:0)

获得了FIX

http://www.oracle.com/technetwork/database/enterprise-edition/calling-shell-commands-from-plsql-1-1-129519.pdf

我们需要在登录后给予GRANTS作为APPS(请参阅链接以获得更清晰的信息 - 无法复制粘贴这些命令,因此,我输入 - 在下面的命令中可能会有一些拼写错误)以下命令修复了许多问题在我们从Oracle的JAVA调用中



dbms_java.grant_permission( '<user_name>', 'SYS:java.util.PropertyPermission', '<property_name>', 'write' );

dbms_java.grant_permission( '<user_name>', 'SYS:java.util.RuntimePermission', 'writeFileDescriptor', '' );

dbms_java.grant_permission( '<user_name>', 'SYS:java.util.RuntimePermission', 'readFileDescriptor', '' );

exec DBMS_JAVA.Grant_Permission( '<user_name>', 'SYS:java.io.FilePermission','<<ALL FILES>>','read,write,execute,delete');
&#13;
&#13;
&#13;