今天一个学习Oracle时间不长的同事在使用数据泵导出的时候碰到了这个错误。
由于前两天看到他在研究DUAL表,而且还问过我几个DUAL表相关的问题,所以看到这个错误后首先想到的就是问他是否向DUAL表中插入数据。
果然他在测试的时候插入过数据,而且由于直接访问DUAL表看到的仍然是一条记录,所以忘记删除多余的数据,因此导致了这个错误。
简单重现一下问题:
SQL> CONN /@YTK102 AS SYSDBA已连接。
SQL> INSERT INTO DUAL VALUES ('X');
已创建 1 行。
SQL> COMMIT;
提交完成。
下面执行数据泵的导出:
E:>expdp yangtk/yangtk@ytk102 directory=d_output dumpfile=yangtk.dp
Export: Release 10.2.0.1.0 - Production on 星期三, 13 8月, 2008 0:26:08
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options启动 "YANGTK"."SYS_EXPORT_SCHEMA_01": yangtk/********@ytk102 directory=d_output
dumpfile=yangtk.dp正在使用 BLOCKS 方法进行估计...处理对象类型
SCHEMA_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 1.437 MB处理对象类型
SCHEMA_EXPORT/USER处理对象类型
SCHEMA_EXPORT/SYSTEM_GRANT处理对象类型
SCHEMA_EXPORT/ROLE_GRANT处理对象类型
SCHEMA_EXPORT/DEFAULT_ROLE处理对象类型
SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA处理对象类型
SCHEMA_EXPORT/TYPE/TYPE_SPEC处理对象类型
SCHEMA_EXPORT/DB_LINK处理对象类型
SCHEMA_EXPORT/SEQUENCE/SEQUENCE处理对象类型
SCHEMA_EXPORT/TABLE/TABLE处理对象类