如何在 Oracle 10g DB 中重新编译 SYS 用户中的无效 Java 类对象?
Posted
技术标签:
【中文标题】如何在 Oracle 10g DB 中重新编译 SYS 用户中的无效 Java 类对象?【英文标题】:How to Recompile Invalid Java Class Objects in SYS user in an Oracle 10g DB? 【发布时间】:2011-09-07 01:49:31 【问题描述】:我需要将 ORACLE 10g 数据库升级到 11g,但在用户模式中有大量无效的 JAVA CLASS 对象类型对象,在 SYS 模式中有 30 个无效的 JAVA CLASS 对象类型对象,我阅读了一些文档,你不应该有升级之前 SYS 模式中的任何无效对象,但我已经运行了重新编译所有对象脚本 utlrp.sql,这些无效对象(对象类型为 JAVA CLASS)在用户和 SYS 模式中都是持久的。那么我可以继续升级数据库吗?或者我怎样才能摆脱那些无效的 JAVA CLASS 对象类型对象?
【问题讨论】:
【参考方案1】:您可以访问 My Oracle Support 吗?
看起来 MOS Doc ID 464568.1 可能为您提供一些有用的信息。
希望对您有所帮助。
【讨论】:
很好的元链接注释。不管那些 sys 无效对象(大多数是 java 类类型),我都继续升级了 db,Oracle 升级组专家告诉我,通过将 db 从 10g 升级到 11g,它可能会摆脱一些无效对象(JAVA 类type) in sys 结果是正确的,但在升级 db 期间仅删除了其中 144 个中的 4 个。以后我会尝试根据元链接注释删除它们...谢谢! 蹩脚的答案 - 如果您无法访问 MOS 怎么办? 我明白......但这就是我找到答案的地方,而且我不认为从需要 Oracle 支持订阅的注释中粘贴解决方案是不道德的。如果您有任何免费提供的解决方案,请随时发布。【参考方案2】:试试:
alter java class "*Your Class Name Goes Here*" resolve;
【讨论】:
以上是关于如何在 Oracle 10g DB 中重新编译 SYS 用户中的无效 Java 类对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何避免两个不同的线程从DB中读取相同的行(Hibernate和Oracle 10g)
如何在 Play 框架中执行查询(使用 Oracle 10g)