PROBLEM:
Received ORA-4063 error while taking expdp, like below.
$ expdp system/manager directory=EXPDP dumpfile=exptest.dmp logfile=exp_test.log schemas=TEST Export: Release 11.2.0.4.0 - Production on Tue Feb 10 05:50:17 2015 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** directory=EXPDP dumpfile=exptest.dmp logfile=exp_test.log schemas=TEST Estimate in progress using BLOCKS method... >>> ORA-31642: the following SQL statement fails: BEGIN "SYS"."DBMS_CUBE_EXP".SCHEMA_CALLOUT(:1,0,1,'10.02.00.03.00'); END; ORA-04063: package body "SYS.DBMS_CUBE_EXP" has errors ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_CUBE_EXP" >>> ORA-31642: the following SQL statement fails: BEGIN "SYS"."DBMS_CUBE_EXP".SCHEMA_CALLOUT(:1,0,1,'10.02.00.03.00'); END; ORA-04063: package body "SYS.DBMS_CUBE_EXP" has errors ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_CUBE_EXP" Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 380.1 GB
SOLUTION
Remove the entry as below:
SQL> conn / as sysdba connected SQL>select * from sys.exppkgact$ where package='DBMS_CUBE_EXP' order by 1,2; PACKAGE SCHEMA CLASS LEVEL# ------------------------------ ------------------------------ ------------ ------------ DBMS_CUBE_EXP SYS 2 1050 DBMS_CUBE_EXP SYS 4 1050 DBMS_CUBE_EXP SYS 6 1050 -- create a backup of the table SYS.EXPPKGACT$ create table sys.exppkgact$_bkup as select * from sys.exppkgact$; -- remove the references to DBMS_CUBE_EXP delete from sys.exppkgact$ where package='DBMS_CUBE_EXP' and schema='SYS'; commit;
Now run the expdp ,it will run successfully.
Reference metalink id: Doc ID 1998072.1
Please comment or write to support@dbaclass.com, if this has fixed your problem.