11g数据库打完ojvm psu补丁后报错ORA-29548: ORA-06512:

博客内容涉及Oracle数据库中遇到的Java系统无法识别指定版本的问题,通过检查数据库组件状态,发现并解决了NLS_DATE_LANGUAGE设置不正确的问题,重新执行postinstall.sql脚本后恢复正常。最终通过运行utlrp.sql确保所有失效对象被重新编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同事反馈报错:

SQL> select dbms_java.longname('1') from dual;
select dbms_java.longname('1') from dual
       *
ERROR at line 1:
ORA-29548: Java ϵͳcould not identify release specified in classes.bin
ORA-06512: SYS.DBMS_JAVA", line 139

检查组件正常:

SQL> select comp_id,status from dba_registry;

COMP_ID                        STATUS
------------------------------ ----------------------
OWB                            VALID
APEX                           VALID
EM                             VALID
AMD                            VALID
SDO                            VALID
ORDIM                          VALID
XDB                            VALID
CONTEXT                        VALID
EXF                            VALID
RUL                            VALID
OWM                            VALID

COMP_ID                        STATUS
------------------------------ ----------------------
CATALOG                        VALID
CATPROC                        VALID
JAVAVM                         VALID
XML                            VALID
CATJAVA                        VALID
APS                            VALID
XOQ                            VALID

18 rows selected.

SQL> select ACTION_TIME,ID,BUNDLE_SERIES,version from dba_registry_history;

ACTION_TIME                                                                         ID BUNDLE_SERIES                  VERSION
--------------------------------------------------------------------------- ---------- ------------------------------ ------------------------------
24-813 12.03.45.119862                                                       0 PSU                            11.2.0.4
08-127 11.19.55.854890                                                  170418 PSU                            11.2.0.4
21-819 12.36.18.942922                                                  190416 PSU                            11.2.0.4
26-101 08.03.53.434500                                                  201020 PSU                            11.2.0.4
26-101 08.05.05.775685                                                       0                                11.2.0.4.201020OJVMPSU
26-101 08.05.05.781130                                                31668908

6 rows selected.

重新更新数据字典后发现@postinstall.sql过程中有报错

检查ERROR at line 1:
ORA-01843: ORA-06512: ine 8这个错误,是说月份不对,难道地理位置有问题?

select * from nls_session_parameters where parameter='NLS_DATE_LANGUAGE';

果然发现不对,修改成alter session set nls_date_language='AMERICAN';

 再重新postinstall.sql后正常。

最后记得@?/rdbms/admin/utlrp.sql编译失效对象正常。

正常的时间在这会长一些,5分钟左右:

 38  -- Add a row in registry$history to indicate this script was run.
 39  
 40      EXECUTE IMMEDIATE 'insert into registry$history
 41                         (action_time, action, namespace, version, id, comments)
 42                         values(SYSTIMESTAMP, ''jvmpsu.sql'', ''SERVER'',
 43                                ''11.2.0.4.201020OJVMPSU'', 0, ''RAN jvmpsu.sql'')';
 44  
 45    END IF;
 46  
 47    EXECUTE IMMEDIATE 'alter system set java_jit_enabled = ' || :jitstate;
 48  
 49  END;
 50  /

--持续5分钟
PL/SQL procedure successfully completed.

SQL> 
SQL> 
SQL> commit;

Commit complete.

SQL> 

正确结果如下:

SQL> select dbms_java.longname('1') from dual;

1

1 row selected.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值