Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

109

积分

0

好友

9

主题
1#
发表于 2012-12-7 15:46:42 | 查看: 11597| 回复: 5
本帖最后由 chunchun2012 于 2012-12-7 15:49 编辑

源数据库为AIX 6.1系统下Oracle10.2.0.1 64位,成功导出后导入到一个linux Redhat 4U4(2.6.9-42.EL)系统的oracle 10.2.0.1 32位系统中,导入部分数据后,出现ORA-01400错误,如下所示
......
(前面内容为正在导入表数据,已省略)
IMP-00019: row rejected due to ORACLE error 1400
IMP-00003: ORACLE error 1400 encountered
ORA-01400: cannot insert NULL into ("MISDB"."OPT_STD_OPERATION_CARD"."CARD_SPEC")
Column 1 8883
(后面内容为正在导入表数据,已省略)
附件是收集的详细信息。
请刘大帮我分析一下是什么原因,谢谢。
源库信息.txt (1.49 KB, 下载次数: 3, 售价: 1 金钱) 测试机上导入.txt (10.94 KB, 下载次数: 9, 售价: 1 金钱)
2#
发表于 2012-12-7 17:51:55
ora-01400,这个MISDB.OPT_STD_OPERATION_CARD是应用用户的表吗,我在oracle内置的用户中没有发现这个用户,你的源库上面的这个字段CARD_SPEC在被目标库上不能为null,检查下两个源库和目标库的该表设计到这个字段的约束条件和该字段的具体值。

回复 只看该作者 道具 举报

3#
发表于 2012-12-7 21:02:50
请给出 "MISDB"."OPT_STD_OPERATION_CARD".  表在 source 和 target的 DDL定义

可以使用 dbms_metadata.get_ddl获得

回复 只看该作者 道具 举报

4#
发表于 2012-12-8 12:06:30
本帖最后由 chunchun2012 于 2012-12-8 12:21 编辑
Liu Maclean(刘相兵 发表于 2012-12-7 21:02
请给出 "MISDB"."OPT_STD_OPERATION_CARD".  表在 source 和 target的 DDL定义

可以使用 dbms_metadata.ge ...


附件是收集到的相关信息。 源库DDL语句.txt (2.01 KB, 下载次数: 4, 售价: 1 金钱) 目标库DDL语句.txt (1.71 KB, 下载次数: 2, 售价: 1 金钱)
两边的定义语句是一样的

回复 只看该作者 道具 举报

5#
发表于 2012-12-8 15:09:03
ORA-01400: cannot insert NULL into ("MISDB"."OPT_STD_OPERATION_CARD"."CARD_SPEC")
Column 1 8883


"CARD_SPEC" VARCHAR2(10) NOT NULL ENABLE


1. 检查 源库中是否 有 CARD_SPEC 真的为NULL , 可能存在BUG 使 NOT NULL的列中存有NULL数据

2. 贴出你的exp / imp 具体命令
Wordaround:

1. 暂时修改 CARD_SPEC 为NULLABLE 导入后再做检查

回复 只看该作者 道具 举报

6#
发表于 2012-12-9 19:45:33
本帖最后由 chunchun2012 于 2012-12-9 20:24 编辑

从源数据库中运行
select CARD_SPEC from MISDB.OPT_STD_OPERATION_CARD;
发现有如下输出内容
CARD_SPEC
----------
3002
(。。。正常显示的数值)
SP2-0784: Invalid or incomplete character beginning 0xC1 returned
4002
SP2-0784: Invalid or incomplete character beginning 0xC2 returned
SP2-0784: Invalid or incomplete character beginning 0xC2 returned
SP2-0784: Invalid or incomplete character beginning 0xC1 returned
SP2-0784: Invalid or incomplete character beginning 0xC1 returned
SP2-0784: Invalid or incomplete character beginning 0xC1 returned
。。。(正常显示的数值)
但输出结果中没有NULL值。
是否是因为其中部分”Invalid or incomplete character“导致导入错误?

===============================
导出命令为:
exp misdb/ht@hb file=d:\dbbackup\db.dmp log=d:\dbbackup\db.log owner=(misdb,cmms_annex) compress=y direct=n rows=y consistent=n constraints=y grants=y indexes=y triggers=y
=================================
导入的过程为:
[oracle@testWIS ~]$ imp misdb/ht

Import: Release 10.2.0.1.0 - Production on Thu Dec 6 04:53:11 2012

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


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

Import file: expdat.dmp > /u0/db.dmp

Enter insert buffer size (minimum is 8192) 30720>

Export file created by EXPORT:V10.02.01 via conventional path
import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16GBK character set (possible charset conversion)
export server uses UTF8 NCHAR character set (possible ncharset conversion)
List contents of import file only (yes/no): no >

Ignore create error due to object existence (yes/no): no >

Import grants (yes/no): yes >   

Import table data (yes/no): yes >

Import entire export file (yes/no): no > yes

. importing MISDB's objects into MISDB
. importing CMMS_ANNEX's objects into CMMS_ANNEX
. importing MISDB's objects into MISDB
. . importing table                 "ADD_MATERIAL"         25 rows imported
.....
IMP-00019: row rejected due to ORACLE error 1400
IMP-00003: ORACLE error 1400 encountered
ORA-01400: cannot insert NULL into ("MISDB"."OPT_STD_OPERATION_CARD"."CARD_SPEC")

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 02:43 , Processed in 0.054778 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569