資料泵匯出時報錯ORA-1422錯誤
今天一個學習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
處理物件型別 SCHEMA_EXPORT/TABLE/INDEX/INDEX
處理物件型別 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
處理物件型別 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
處理物件型別 SCHEMA_EXPORT/TABLE/COMMENT
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
處理物件型別 SCHEMA_EXPORT/FUNCTION/FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SP
EC
處理物件型別 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
處理物件型別 SCHEMA_EXPORT/TYPE/TYPE_BODY
處理物件型別 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 匯出了 "YANGTK"."T_RECORD" 473.9 KB 40000 行
. . 匯出了 "YANGTK"."TEST_LOB" 5.656 KB 1 行
. . 匯出了 "YANGTK"."CHAINED_ROWS" 81.25 KB 2118 行
. . 匯出了 "YANGTK"."T" 4.906 KB 1 行
. . 匯出了 "YANGTK"."T_LEVEL" 6.234 KB 6 行
. . 匯出了 "YANGTK"."T_LEVEL1" 6.585 KB 8 行
. . 匯出了 "YANGTK"."T_LOAD_SPACE" 5.585 KB 5 行
. . 匯出了 "YANGTK"."T_LOG" 5.273 KB 2 行
. . 匯出了 "YANGTK"."T_NO_EXISTS_BEFORE" 5.257 KB 1 行
. . 匯出了 "YANGTK"."T_TREE" 5.960 KB 9 行
. . 匯出了 "YANGTK"."T_CHAR" 0 KB 0 行
. . 匯出了 "YANGTK"."T_COMPRESS" 0 KB 0 行
ORA-39125: 在 KUPW$WORKER.UNLOAD_METADATA 中 Worker 發生意外的致命錯誤 (在呼叫 D
BMS_METADATA.FETCH_XML_CLOB [TABLE_DATA:"YANGTK"."T_COMPRESS"] 時)
ORA-31642: 以下 SQL 語句失敗:
BEGIN "SYS"."DBMS_SCHED_EXPORT_CALLOUTS".SCHEMA_CALLOUT(:1,1,1,'10.02.00.01.00')
; END;
ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: 在 "SYS.DBMS_METADATA", line 907
ORA-01422: 實際返回的行數超出請求的行數
ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: 在 "SYS.KUPW$WORKER", line 6241
----- PL/SQL Call Stack -----
object line object
handle number name
2EBF7ED4 14916 package body SYS.KUPW$WORKER
2EBF7ED4 6300 package body SYS.KUPW$WORKER
2EBF7ED4 2340 package body SYS.KUPW$WORKER
2EBF7ED4 6861 package body SYS.KUPW$WORKER
2EBF7ED4 1262 package body SYS.KUPW$WORKER
2EBDBC80 2 anonymous block
作業 "YANGTK"."SYS_EXPORT_SCHEMA_01" 因致命錯誤於 00:26:43 停止
匯出過程中出現了ORA-1422錯誤,而這正是由於DUAL表中記錄多於1條造成的結果。Oracle很多的工具和包都依賴於DUAL表,因此插入多餘的記錄就會導致這些工具出現異常情況:
SQL> DELETE DUAL;
已刪除 1 行。
SQL> COMMIT;
提交完成。
SQL> SELECT * FROM DUAL;
D
-
X
下面重新執行匯出問題解決:
E:\>expdp yangtk/yangtk@ytk102 directory=d_output dumpfile=yangtk.dp
Export: Release 10.2.0.1.0 - Production on 星期三, 13 8月, 2008 0:37:31
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_02": yangtk/********@ytk102 directory=d_output
dumpfile=yangtk.dp
正在使用 BLOCKS 方法進行估計...
處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 1.812 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
處理物件型別 SCHEMA_EXPORT/TABLE/INDEX/INDEX
處理物件型別 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
處理物件型別 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
處理物件型別 SCHEMA_EXPORT/TABLE/COMMENT
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
處理物件型別 SCHEMA_EXPORT/FUNCTION/FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SP
EC
處理物件型別 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
處理物件型別 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
處理物件型別 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
處理物件型別 SCHEMA_EXPORT/TYPE/TYPE_BODY
處理物件型別 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 匯出了 "YANGTK"."T_RECORD" 473.9 KB 40000 行
. . 匯出了 "YANGTK"."SYS_EXPORT_SCHEMA_01" 227.9 KB 1169 行
. . 匯出了 "YANGTK"."TEST_LOB" 5.656 KB 1 行
. . 匯出了 "YANGTK"."CHAINED_ROWS" 81.25 KB 2118 行
. . 匯出了 "YANGTK"."T" 4.906 KB 1 行
. . 匯出了 "YANGTK"."T_LEVEL" 6.234 KB 6 行
. . 匯出了 "YANGTK"."T_LEVEL1" 6.585 KB 8 行
. . 匯出了 "YANGTK"."T_LOAD_SPACE" 5.585 KB 5 行
. . 匯出了 "YANGTK"."T_LOG" 5.273 KB 2 行
. . 匯出了 "YANGTK"."T_NO_EXISTS_BEFORE" 5.257 KB 1 行
. . 匯出了 "YANGTK"."T_TREE" 5.960 KB 9 行
. . 匯出了 "YANGTK"."T_CHAR" 0 KB 0 行
. . 匯出了 "YANGTK"."T_COMPRESS" 0 KB 0 行
已成功載入/解除安裝了主表 "YANGTK"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
YANGTK.SYS_EXPORT_SCHEMA_02 的轉儲檔案集為:
E:\YANGTK.DP
作業 "YANGTK"."SYS_EXPORT_SCHEMA_02" 已於 00:37:51 成功完成
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-425588/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 轉oracle資料泵匯出時報錯Oracle
- 資料泵匯出資料包錯處理
- 資料泵匯出出現ORA-4030錯誤
- 資料泵匯入時出現ORA-600(klaprs_11)錯誤
- 資料泵匯出出現ORA-31617錯誤
- 資料泵匯出碰到ORA-600(kcbz_check_objd_typ_3)錯誤OBJ
- 資料泵匯出出現ORA-31623錯誤
- 匯入sql時報日期型別錯誤SQL型別
- 資料泵轉換模式匯入時出現0ra31655錯誤模式
- 資料泵匯出匯入
- 資料泵的匯入匯出
- 資料泵匯出匯入表
- 【ORACLE 匯入匯出】exp 錯誤Oracle
- Oracle用資料泵匯入資料包12899的錯誤碼解決方法Oracle
- Oracle資料泵-schema匯入匯出Oracle
- 資料泵匯出匯入資料標準文件
- Oracle資料泵的匯入和匯出Oracle
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- Oracle使用資料泵匯出匯入表Oracle
- 資料泵取匯出和匯入(一)
- 資料泵匯入分割槽表統計資訊報錯(七)
- 資料泵匯入分割槽表統計資訊報錯(二)
- 資料泵匯入分割槽表統計資訊報錯(四)
- 資料泵匯入分割槽表統計資訊報錯(三)
- 資料泵匯入分割槽表統計資訊報錯(六)
- 資料泵匯入分割槽表統計資訊報錯(五)
- 【轉】Oracle 9i客戶端匯出10g資料庫時報ora-33262錯誤Oracle客戶端資料庫
- 資料庫泵(expdp/impdp)匯入匯出流程資料庫
- PLSQL工具匯入Excel資料使用者連線時報錯SQLExcel
- 使用資料泵工具expdp工具匯出資料
- Oracle expdp資料泵遠端匯出Oracle
- 使用資料泵匯出DDL語句
- 嘗試無引數啟動資料庫時報錯ORA-304錯誤資料庫
- imp匯入檔案時報大量的imp-0008錯誤
- mysql匯入資料亂碼錯誤一則MySql
- 12c 資料泵匯入匯出級別
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- 通過資料庫鏈匯出遇到ORA-39126錯誤資料庫