暂无图片
分享
三三两两
2019-11-15
数据泵导入数据时 ,出现ORA-01858: 在要求输入数字处找到非数字字符

ORA-39083: 对象类型 TABLE:“leo”.“test” 创建失败, 出现错误:
ORA-01858: 在要求输入数字处找到非数字字符
失败的 sql 为:
CREATE TABLExxx…
ORA-39112: 跳过从属对象类型 INDEX:“leo”.“PK_test”, 创建基本对象类型 TABLE:“leo”.“test” 失败
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
ORA-39112: 跳过从属对象类型 CONSTRAINT:“leo”.“PK_test”, 创建基本对象类型 TABLE:“leo”.“test” 失败
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
ORA-39112: 跳过从属对象类型 INDEX_STATISTICS, 创建基本对象类型 INDEX:“leo”.“PK_test” 失败
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS

导入的时候出现这样问题,去源端表查看没有数据。什么原因呢?

收藏
分享
6条回答
默认
最新
zyt

你好,根据报错提示,在导入的过程中创建leo用户下的test表失败,然后导致后续导入过程中,依赖这张表的数据和约束都创建失败,建议可以根据提示的创建语句进行手工创建。

暂无图片 评论
暂无图片 有用 0
三三两两

已创建,导入第一遍将Table_exists_action为replace ,第二遍调为skip。数据对比正常,但是究竟是因为什么出现这个01858错误呢?

暂无图片 评论
暂无图片 有用 0
三三两两
问题已关闭: 问题已经得到解决 字符集的锅
暂无图片 评论
暂无图片 有用 0
zyt

你好,这个问题就涉及到数据泵导入的顺序了。由于你没有提供完整的日志,我以下面这个数据泵导入的日志为例,你可以根据这个解释对比一下你的日志就明白了。

请看如下某个impdp的日志:
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

……

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

. . imported “XXXX”.“BO_DOCUMENTERRORINFO” 6.356 GB 629053 rows
. . imported “XXXX”.“BO_DOCUMENTINFO” 2.233 GB 30709961 rows
. . imported “XXXX”.“BO_PDFTEMPLATE” 4.698 MB 101 rows
. . imported “XXXX”.“BO_SYSLOG” 360.3 KB 1912 rows
. . imported “XXXX”.“BO_USER” 6.882 KB 4 rows
. . imported “XXXX”.“BO_XQUERYFILE” 16.38 KB 5 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job “SYS”.“SYS_IMPORT_FULL_01” completed with 1 error(s) at 11:42:46

在数据泵导入的过程中,请注意标注的两行,首先导入表的结构(元数据),然后导入表中的数据。
首先创建BO_DOCUMENTERRORINFO这张表,然后再导出这张表的数据,同时日志显示这张表有6.356 G、629053行。然后再导入一脸表的对象,像索引、约束、索引的统计信息等。

关于你的问题,为什么会出现ORA-01858?也就可以理解了。请注意在报这个错前,还有一个ORA-39083提示表创建失败,按照数据泵正常的流程创建表后,应该导入数据了,但是这个时候表并未创建成功,所以后期的表中数据的导入就跟着报了ORA-01858.然后根据你的继续导入索引,约束等。

如有问题,欢迎沟通~

暂无图片 评论
暂无图片 有用 0
三三两两

非常感谢技术专家zyt,谢谢您的答疑解惑

暂无图片 评论
暂无图片 有用 0
三三两两
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏