如何找出oracle中java类无效的原因

如何找出oracle中java类无效的原因,java,oracle,stored-procedures,Java,Oracle,Stored Procedures,我有一个java类。我将其加载到Oracle 11中,如下所示: create or replace and compile java source named CubeTester as import java.io.PrintWriter; import java.io.StringWriter; ... etc SELECT object_name, dbms_java.longname(object_name), status FROM user_objects WHERE objec

我有一个java类。我将其加载到Oracle 11中,如下所示:

create or replace and compile java source named CubeTester as
import java.io.PrintWriter;
import java.io.StringWriter;
... etc
SELECT object_name, dbms_java.longname(object_name), status
FROM user_objects
WHERE object_type='JAVA CLASS'
AND dbms_java.longname(object_name) LIKE '%CubeTest%' 
ORDER BY 1
Oracle用已处理的语句进行响应—所以看起来我做得不错。。但当我执行SQL语句时,发现它的有效性如下:

create or replace and compile java source named CubeTester as
import java.io.PrintWriter;
import java.io.StringWriter;
... etc
SELECT object_name, dbms_java.longname(object_name), status
FROM user_objects
WHERE object_type='JAVA CLASS'
AND dbms_java.longname(object_name) LIKE '%CubeTest%' 
ORDER BY 1
我明白了:

 OBJECT_NAME    DBMS_JAVA.LONGNAME(OBJECT_NAME) STATUS
 CubeTester CubeTester  INVALID
现在我去检查了我的每一个进口,每一个都是有效的。除了java.io.*,但由于这是JDK的一部分,我认为这没问题——我错了吗

是的,代码在eclipse和命令行中也可以正常工作

如何调试这个?问题是,我是在APEX SQL研讨会上做这件事的,所以我没有访问该框的权限,我不能使用sqlplus或类似的东西。它必须是单个SQL命令或其他命令


有关于如何继续的建议吗?

据我所知,Oracle 11gR2有Java 1.5。你在编译什么版本的Java?用户_错误中有什么吗?@Nick我在Oracle中编译,正如命令所说。我认为Nick的问题是您在Eclipse中使用的Java verion是否与在Oracle中使用的Java verion相同。如果不是,您很可能正在使用某些只存在于较新版本中的功能,因此您的代码将无法在Oracle使用的较旧版本中编译。并且在user_errors视图中没有任何内容-从user_errors中选择*,其中name='CubeTester'?我不知道是否应该有,但那是我要找的地方