2017-03-22 47 views
0

有人可以帮助解决这个问题。ORA-29546错误 - 当试图上传一个jar文件在oracle

我们试图在oracle 12c中上传一个jar文件,我们得到了下面的错误。

ORA-29546:严重形成的资源

能有人帮助我们在这个问题上。

+0

请让我知道需要什么样的信息,如果还有人知道这个错误的。让我知道解决方案。 –

+0

我们将这个jar文件从11i迁移到R12实例(Fresh)。 –

+0

为什么downvote我的问题?请不要downvote,除非它真的很糟糕的问题..但我的问题是一个有效的问题。 –

回答

1

你从哪里得到.jar?

ORA-29546意味着Oracle JVM验证程序会在字节代码中看到某些无法由合法编译的Java程序创建的东西。 (A)确定您的数据库版本运行的Java版本是什么,然后(B)从源代码中重新编译您的Java,版本号为target,等于数据库JVM版本。然后,(C)重新包装.jar和(D)尝试再次加载它。

你可以决定你的数据库的Java版本如下(或只是谷歌它,大概):

CREATE OR REPLACE FUNCTION get_java_property (prop IN VARCHAR2) 
    RETURN VARCHAR2 IS 
    LANGUAGE JAVA 
    NAME 'java.lang.System.getProperty(java.lang.String) return java.lang.String' ; 

DECLARE 
    l_java_version VARCHAR2 (240); 
BEGIN 
    l_java_version := get_java_property ('java.version'); 
    DBMS_OUTPUT.put_line ('Java version is ' || l_java_version); 
END; 

--DROP FUNCTION get_java_property; 
+0

我们从11i实例svn获得了jar源代码(Zip文件),然后我们使用javac编译进R12服务器,试图上传类文件。并且我们最终得到这个错误:( –

+0

你的R12服务器中的JDK独立于数据库中嵌入的JVM,在12c中,嵌入式JVM是Java 6.在你的'javac'步骤中,是否包含了'-target 1.6 '? –

+0

我们只是做了javac ,我们是否需要明确提到-target 1.6? –