ORA-30926 while using impdp over a database link
Background
The other day I was doing an import using impdp in 12.1.0.2, and received the following error:'ORA-30926: unable to get a stable set of rows in the source tables'.
Starting "SYS_PYTHIAN"."SYS_IMPORT_TABLE_03": sys_pythian/******** parfile=table_import.par
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.STATS_LOAD [MARKER]
MARKER
ORA-30926: unable to get a stable set of rows in the source tables
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.KUPW$WORKER", line 11265
----- PL/SQL Call Stack -----
object line object
handle number name
0x12f199188 27116 package body SYS.KUPW$WORKER
0x12f199188 11286 package body SYS.KUPW$WORKER
0x12f199188 24286 package body SYS.KUPW$WORKER
0x12f199188 24415 package body SYS.KUPW$WORKER
0x12f199188 20692 package body SYS.KUPW$WORKER
0x12f199188 10206 package body SYS.KUPW$WORKER
0x12f199188 13381 package body SYS.KUPW$WORKER
0x12f199188 3173 package body SYS.KUPW$WORKER
0x12f199188 12035 package body SYS.KUPW$WORKER
0x12f199188 2081 package body SYS.KUPW$WORKER
0x12ffe7908 2 anonymous block
In STATS_UNLOAD
DBMS_STATS.EXPORT_STATS_FOR_DP
DBMS_STATS.EXPORT_STATS_FOR_DP
In STATS_LOAD with process_order 39
Fixing up the name in the impdp stat table
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.STATS_LOAD [MARKER]
ORA-30926: unable to get a stable set of rows in the source tables
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 11259
----- PL/SQL Call Stack -----
object line object
handle number name
0x6fc030c8 27116 package body SYS.KUPW$WORKER
0x6fc030c8 11286 package body SYS.KUPW$WORKER
0x6fc030c8 24286 package body SYS.KUPW$WORKER
0x6fc030c8 24415 package body SYS.KUPW$WORKER
0x6fc030c8 10105 package body SYS.KUPW$WORKER
0x6fc030c8 13381 package body SYS.KUPW$WORKER
0x6fc030c8 3173 package body SYS.KUPW$WORKER
0x6fc030c8 12035 package body SYS.KUPW$WORKER
0x6fc030c8 2081 package body SYS.KUPW$WORKER
0x134b42cf8 2 anonymous block
In STATS_UNLOAD
DBMS_STATS.EXPORT_STATS_FOR_DP
DBMS_STATS.EXPORT_STATS_FOR_DP
In STATS_LOAD with process_order 39
Fixing up the name in the impdp stat table
Job "SYS_PYTHIAN"."SYS_IMPORT_TABLE_03" stopped due to fatal error at Thu Jan 19 13:47:30 2017 elapsed 0 00:01:58
Situation
While investigating the situation, I found that the source database had OLAP option removed and found a document 1353491.1 (that I thought could help) which stated that if the package DBMS_CUBE_EXP is present in SYS.EXPPKGACT$, and it does not exist, it should be deleted. So that's what I did:
SQL> SELECT comp_id, status, SUBSTR(version,1,10) version, comp_name
FROM dba_registry ORDER BY 1;
COMP_ID STATUS VERSION COMP_NAME
------------------------------ ----------- ---------- --------------------------------------------
CATALOG VALID 12.1.0.2.0 Oracle Database Catalog Views
CATPROC VALID 12.1.0.2.0 Oracle Database Packages and Types
XDB VALID 12.1.0.2.0 Oracle XML Database
SQL> select *
FROM SYS.EXPPKGACT$
WHERE PACKAGE = 'DBMS_CUBE_EXP' AND SCHEMA= 'SYS';
PACKAGE SCHEMA CLASS LEVEL#
----------------- ---------- ---------- ----------
DBMS_CUBE_EXP SYS 4 1050
SQL> select PACKAGE, SCHEMA, class from exppkgact$ where (schema, package)
not in
(select owner, object_name
from dba_objects
where object_type='PACKAGE');
PACKAGE SCHEMA CLASS
-------------------------- ---------- ----------
DBMS_CUBE_EXP SYS 4
SQL> create table exppkgact$_bck as select * from exppkgact$;
Table created.
SQL> delete from exppkgact$ where package = 'DBMS_CUBE_EXP' and schema = 'SYS';
1 row deleted.
SQL> commit;
Commit complete.
Error Message
But I still got the same error. After conducting more research, I found a workaround to run the import without stats and once I did that, I was able to run the import successfully. Since this was on a development database, I just ran stats on the table, but if you needed to you could export your stats and import them, in this case I only excluded the stats:
[oracle@ ~ ]$ cat table_import.par
tables=TEST.TEST_TABLE
directory=export_dir_pythian
logfile=impdp.log
network_link=PYTHIAN
TABLE_EXISTS_ACTION=replace
EXCLUDE=STATISTICS
STATUS=120
[oracle@ ~ ]$ cat impdp.log
;;;
Import: Release 12.1.0.2.0 - Production on Thu Jan 19 13:49:57 2017
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
;;;
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
Starting "SYS_PYTHIAN"."SYS_IMPORT_TABLE_04": sys_pythian/******** parfile=table_import.par
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. . imported "TEST"."TEST_TABLE" 222224 rows
Job "SYS_PYTHIAN"."SYS_IMPORT_TABLE_04" successfully completed at Thu Jan 19 13:50:07 2017 elapsed 0 00:00:07
Conclusion
I hope this workaround helps you in the event that you ever face this error while doing an impdp over a database link. This was originally posted in rene-ace.com
Oracle Database Consulting Services
Ready to optimize your Oracle Database for the future?
Share this
Share this
More resources
Learn more about Pythian by reading the following blogs and articles.

How to Migrate Oracle Applications 11.5.10.2 from on-premises SunOS fleet to Linux on AWS
12c: How to Restore/Recover a Small Table in a Large Database
Oracle upgrade failures due to METHOD_OPT and XDBCONFIG
Ready to unlock value from your data?
With Pythian, you can accomplish your data transformation goals and more.