執行DBMS_REDEFINITION報ORA-42030錯誤
【背景】今天在做一個SAP表VBRP的線上重定義,報瞭如下的錯誤,這個報錯的原因很清晰,就是由於VBRP_NEW20161221的有些欄位有問題導致資料插入不進去;
點選(此處)摺疊或開啟
-
SQL> EXEC DBMS_REDEFINITION.START_REDEF_TABLE('SAPSR3', 'VBRP', 'VBRP_NEW20161221');
-
BEGIN DBMS_REDEFINITION.START_REDEF_TABLE('SAPSR3', 'VBRP', 'VBRP_NEW20161221'); END;
-
*
-
ERROR at line 1:
-
ORA-12008: error in materialized view refresh path
-
ORA-14400: inserted partition key does not map to any partition
-
ORA-06512: at "SYS.DBMS_REDEFINITION", line 56
-
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1490
- ORA-06512: at line 1
解決的方法也是很簡單的,就是刪除VBRP_NEW20161221,然後修改下欄位,再重新執行重定義即可。
點選(此處)摺疊或開啟
- drop materialized view log on VBRP
道理都懂,結果卻錯了一步,這個錯誤的時候應該先執行如下操作:
點選(此處)摺疊或開啟
-
BEGIN
-
DBMS_REDEFINITION.ABORT_REDEF_TABLE(uname => 'SAPSR3',
-
orig_table => 'VRP',
-
int_table => 'VBRP_NEW20161221'
-
);
- END
但是我卻進行了物化檢視和表的刪除操作,當表修改完成之後,重新執行重定義的時候就報了ORA-42030的錯誤:
點選(此處)摺疊或開啟
-
SQL> EXEC DBMS_REDEFINITION.START_REDEF_TABLE('SAPSR3', 'VBRP', 'VBRP_NEW20161221');
-
*
-
ERROR at line 1:
-
ORA-42030: cannot online redefine table "SAPSR3"."VBRP" with commit SCN-based
-
MV log
-
ORA-06512: at "SYS.DBMS_REDEFINITION", line 56
-
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1490
- ORA-06512: at line 1
【原因】因為刪除了物化檢視,但是當前表的物化檢視日誌還是存在的
【解決方法】找到問題後,原因很很簡單,就是刪除物化檢視日誌
點選(此處)摺疊或開啟
-
SQL> SELECT LOG_OWNER,MASTER,LOG_TABLE FROM DBA_MVIEW_LOGS;
-
LOG_OWNER MASTER LOG_TABLE
-
----------------------- ----------------- --------------------
- SAPSR3 VBRP MLOG$_VBRP
【解決方法】找到問題後,原因很很簡單,就是刪除物化檢視日誌
重新執行就可以了,
點選(此處)摺疊或開啟
-
SQL> BEGIN
-
DBMS_REDEFINITION.CAN_REDEF_TABLE('SAPSR3','VBRP',DBMS_REDEFINITION.CONS_USE_PK);
-
END;
-
/ 2 3 4
- PL/SQL procedure successfully completed.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12679300/viewspace-2131177/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql執行命令報segmentation fault 錯誤MySqlSegmentation
- 執行錯誤集
- 執行AWR報告出現ORA-6502錯誤
- 執行查詢報ORA-00600錯誤,嚇人
- 11GR2執行DBCA報錯誤(打補丁)
- Struts1.1執行錯誤!
- 請教執行錯誤提示
- 執行用例報錯
- ./mongod命令執行報錯Go
- linuxmysql執行報錯LinuxMySql
- 執行srvctl命令報錯
- PbootCMS錯誤提示:執行SQL發生錯誤!錯誤:no such column: def1bootSQL
- 執行SQL發生錯誤!錯誤:disk I/O errorSQLError
- Standby上執行RMAN報錯RMAN-10006錯誤處理
- adcfgclone.pl appsTier報錯某些sh執行錯誤處理GCAPP
- 執行Bex 出現 61704 錯誤
- 求救!!!!!!jsp執行錯誤;(轉)JS
- PbootCMS執行SQL發生錯誤!錯誤:no such column: def1bootSQL
- springboot整合Batis,執行報錯,資料庫連線密碼錯誤Spring BootBAT資料庫密碼
- 執行create table as 報ora-600的錯誤的解決方案
- 執行awrrpt.sql生成awr報告報ora-06502錯誤SQL
- 執行web專案報錯Web
- 執行opatch lsinventory報錯73
- boost asio執行中報錯
- sh指令碼執行報錯指令碼
- 執行指令碼寫入中間表錯誤返回錯誤資訊指令碼
- flink1.14.0在yarn上執行報錯--類載入錯誤--問題Yarn
- hadoop配置、執行錯誤總結Hadoop
- 執行jdonMVC示例出現了錯誤MVC
- 關於jivejdon 4.0的執行錯誤
- idea上執行scala報錯Idea
- mysql執行報錯mysql.sockMySql
- MacOS 裡執行 sed 命令報錯Mac
- PHP編譯,執行make報錯PHP編譯
- Linux sybase執行isql報錯LinuxSQL
- 記錄錯誤並繼續執行:錯誤事件記錄子句 --轉事件
- PbootCMS 執行SQL發生錯誤!錯誤: no such table:ay_configbootSQL
- 升級提示 執行SQL發生錯誤!錯誤:duplicate column name: picstitleSQL