ORA-04063: package body “SYS.DBMS_DATAPUMP“ has errors

由于手工修改编译了sys.DBMS_DATAPUMP的start_job里cluster_ok的默认参数值,1为0,编译成功后,导致导出报错。

ORA-04063: package body "SYS.DBMS_DATAPUMP" has errors

SQL> CREATE TABLE "test" 
  2  (       "   " VARCHAR2(255), "YPID" VARCHAR2(255));

Table created.

SQL> insert into "test"  values('aa','bb');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;


--------------------------------------------------------------------------------
YPID
--------------------------------------------------------------------------------
aa
bb


SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0


[oracle@oem ~]$ expdp jyc/jyc@jyc dumpfile=t.dmp logfile=t.log directory=dmp tables=jyc.test

Export: Release 19.0.0.0.0 - Production on Tue Jun 29 16:54:57 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

UDE-04063: operation generated ORACLE error 4063
ORA-04063: package body "SYS.DBMS_DATAPUMP" has errors
ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_DATAPUMP"
ORA-06512: at line 1

[oracle@oem ~]$ sqlplus jyc/jyc@jyc

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 29 16:57:00 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Last Successful login time: Tue Jun 29 2021 16:54:57 +08:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from dba_errors where OWNER='SYS' and NAME='DBMS_DATAPUMP';

OWNER
--------------------------------------------------------------------------------
NAME
--------------------------------------------------------------------------------
TYPE                                     SEQUENCE       LINE   POSITION
-------------------------------------- ---------- ---------- ----------
TEXT
--------------------------------------------------------------------------------
ATTRIBUTE          MESSAGE_NUMBER
------------------ --------------
SYS
DBMS_DATAPUMP
PACKAGE BODY                                    1       7294         17

OWNER
--------------------------------------------------------------------------------
NAME
--------------------------------------------------------------------------------
TYPE                                     SEQUENCE       LINE   POSITION
-------------------------------------- ---------- ---------- ----------
TEXT
--------------------------------------------------------------------------------
ATTRIBUTE          MESSAGE_NUMBER
------------------ --------------
PLS-00593: default value of parameter "CLUSTER_OK" in body must match that of sp
ec

ERROR                         593

OWNER
--------------------------------------------------------------------------------
NAME
--------------------------------------------------------------------------------
TYPE                                     SEQUENCE       LINE   POSITION
-------------------------------------- ---------- ---------- ----------
TEXT
--------------------------------------------------------------------------------
ATTRIBUTE          MESSAGE_NUMBER
------------------ --------------


SQL> 

select * from dba_objects where status = 'INVALID'

select owner, name, text, message_number from all_errors where owner='SYS';

解决办法:

在cdb下执行重建dbms_datapump

cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
@dbmsdp.sql;
@utlrp.sql;

exit

重导正常:

[oracle@oem admin]$ expdp jyc/jyc@jyc dumpfile=t.dmp logfile=t.log directory=dmp tables=jyc.test

Export: Release 19.0.0.0.0 - Production on Thu Jul 1 10:29:24 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
FLASHBACK automatically enabled to preserve database integrity.
Starting "JYC"."SYS_EXPORT_TABLE_01":  jyc/********@jyc dumpfile=t.dmp logfile=t.log directory=dmp tables=jyc.test 
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Processing object type TABLE_EXPORT/TABLE/PROCACT_INSTANCE
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported "JYC"."TEST"                                    0 KB       0 rows
Master table "JYC"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for JYC.SYS_EXPORT_TABLE_01 is:
  /home/oracle/dmp/t.dmp
Job "JYC"."SYS_EXPORT_TABLE_01" successfully completed at Thu Jul 1 10:29:32 2021 elapsed 0 00:00:08

相关参考:https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=423195174007423&id=1572407.1&displayIndex=1&_afrWindowMode=0&_adf.ctrl-state=kkixobvyr_267#SYMPTOM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值