周末有现场给我发了报错如下,看信息是有表或者列的乱码导致。因为是aix环境迁移到x86环境,百度了一些类似的情况,说exclude=comment导入再想办法导入comment
Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
ORA-39126: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS [COMMENT]
ORA-06502: PL/SQL: numeric or value error
LPX-00230: invalid character 60 (U+003C) found in a Name or Nmtoken
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPW$WORKER", line 9715
----- PL/SQL Call Stack -----
object line object
handle number name
0xf47df3a28 21979 package body SYS.KUPW$WORKER
0xf47df3a28 9742 package body SYS.KUPW$WORKER
0xf47df3a28 17950 package body SYS.KUPW$WORKER
0xf47df3a28 4058 package body SYS.KUPW$WORKER
0xf47df3a28 10450 package body SYS.KUPW$WORKER
0xf47df3a28 1824 package body SYS.KUPW$WORKER
0xf3f97af78 2 anonymous block
ORA-39097: Data Pump job encountered unexpected error -1427
ORA-39065: unexpected master process exception in DISPATCH
ORA-01427: single-row subquery returns more than one row
Job "SYSTEM"."SYS_IMPORT_FULL_01" stopped due to fatal error at Sat May 27 00:04:25 2023 elapsed 0 00:39:18
换个思路,我们可在原库中找到乱码的信息,做对应的清理后即可解决问题,使用dba_col_comments,细节就不举例了,以免泄露客户信息,在案例中,在7万多列找出了76个列注释乱码,
使用如下sql如下清理了乱码,
comment on column 表名.列名 is '';
原库中重新导出,再导入到新环境中,完全没有报错