文档解释
ORA-29511: could not resolve Java class
Cause: A CREATE AND RESOLVE NOFORCE JAVA CLASS command specified definition data that could not be resolved, or resolution failed for some referenced class.
Action: Remove the NOFORCE option or remove impediments to resolution.
ORA-29511: 表示无法解析指定的Java类。
官方解释
ORA-29511 表示Oracle无法加载用户提供的Java类或者该Java类不能解析,例如在用UjAVA命令加载Java类时,用户输入的类名无法被解析,此时会出现ORA-29511错误提示。
常见案例
1. 在JVM环境可以正常加载该Java类,但是使用UjAVA时出现ORA-29511错误,一般表示输入的Java类和JVM中的不一致。
2. 在JVM环境中加载的Java类,但是被Oracle识别为不能被解析,一般表示该Java类在Oracle中不存在,或者存在某些Java类绑定错误。
一般处理方法及步骤
1. 检查Oracle中是否存在该Java类:用执行select * from v$java_class_repos就可以查询是否存在ORA-29511错误所报的Java类。
2. 如果存在,可以尝试在JVM环境中重新编译这个Java类,然后用ujava重新加载该类,如果出现ORA-29511错误仍旧存在,可以尝试权限调整或者重新编译其他Java类。
3. 如果不存在,可以用ujava命令直接编译该Java类,再输入ujava命令正常load该Java类,如果仍然报ORA-29511错误,可以考虑重新编译其他Java类并重新加载。