在数据库 A 上:我通过 oracle sql exp.exe 命令创建 test.dmp:
exp.exe %CONNECT% FILE=test.dmp LOG=%LOGFILE% DIRECT=Y STATISTICS=NONE
在 .log 文件中它写道:
. . export table TBL_TEST 7000 rows exported (no error!).
版本:Oracle 数据库 11g 企业版版本 11.2.0.4.0 - 64 位生产
在数据库 B 上:我通过 imp.exe 命令导入 test.dmp:
imp.exe %CONNECT% file=test.dmp LOG=%LOGFILE% FULL=Y
在 .log 文件中,我看到错误:
. . importing table TBL_TEST
IMP-00019: row rejected due to ORACLE error 1400
IMP-00003: ORACLE error 1400 encountered
ORA-01400: cannot insert NULL into (TBL_TEST.COLUMN_A)
版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
TBL_TEST.COLUMN_A 类型为 NUMBER(1,0),Nullable=No,DATA_DEFAULT=0。
这怎么可能?在数据库 A 上,“COLUMN_A”列已填充,并且也定义为非空值。所有表都是在数据库 B 上从头开始重新创建的。
你知道为什么会发生这种情况吗?
先感谢您,
路易莎·布拉杜斯卡