[英]Error while calling java from PL/SQL
當我從PL / SQL調用JAVA類時,我得到以下錯誤
ORA-29532 Java call terminated by uncaught java exception
我已經提到了一個注意事項-Doc:1420943.1
這要求檢查值( show parameters shared_servers
)並設置為零,如果它不為零。 但是價值已經是0。
請幫助我確定導致問題的原因。
- - - - - - - - - - - -更多信息 - - - - - - - - - - - - - ----------
我們使用loadjava -user apps/password - force -verbose -resolve java.class
將java類加載到Oracle DB中。
數據庫版本12c。
PL / SQL:
l_retCode := initialize(para_1 => l_para1,
Para_2 => l_para2,
para_3 => l_para3);
初始化函數定義如下
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'
Java代碼:
public static int initialize(s String, s1 String , s2 String){
// logic goes here
}
1)在DB set serveroutput on
和exec dbms_java.set_output(10000000);
它允許在db中查看java堆棧跟蹤。
2)錯誤地發布java類。 字符大小很重要。 更改java.lang.string。 到java.lang.String。
得到了FIX
我們需要在登錄后給予GRANTS作為APPS(請參閱鏈接以獲取更清晰的信息 - 無法復制粘貼這些命令,因此,我輸入 - 在下面的命令中可能會有一些拼寫錯誤)以下命令修復了我們JAVA中的許多問題來自Oracle的電話
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');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.