drop物化檢視log表導致insert、delete、update報ORA-00942
之前基於emp表測試物化檢視建立了 物化檢視log表,測試完成後清理不用的表 直接drop table 物化檢視log表,過段時間再用emp表的時候發現:
select emp正常,但是insert、delete、update就報 ORA-00942: table or view does not exist
下面重現這個問題:
#建立物化檢視log表在emp上
SQL> create materialized view log on emp with rowid;
Materialized view log created.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
MLOG$_EMP TABLE
SALGRADE TABLE
#直接刪除log表
SQL> drop table MLOG$_EMP purge;
Table dropped.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
#進行select、insert、update、delete操作:
SQL> select count(*) from emp;
COUNT(*)
----------
14
#發現insert、delete、update報ORA-00942
SQL> update emp set empno=empno+1;
update emp set empno=empno+1
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> delete emp where empno=7379;
delete emp where empno=7379
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> insert into emp(empno) values(1);
insert into emp(empno) values(1)
*
ERROR at line 1:
ORA-00942: table or view does not exist
解決方法:
#查出dba_mview_logs中存在,而的log表不存在的物件
select 'drop materialized view log on '||mvl.log_owner||'.'||mvl.master||';' cmd from dba_mview_logs mvl where not exists ( select table_name from dba_tables tab where tab.owner = mvl.log_owner and tab.table_name = mvl.log_table ) ;
CMD
--------------------------------------------------------------------------------
drop materialized view log on SCOTT.EMP;
#執行正確的刪除 materialized view log 語句
SQL> drop materialized view log on SCOTT.EMP;
Materialized view log dropped.
#問題解決
SQL> delete emp where empno=7379;
1 row deleted.
SQL> rollback;
Rollback complete.
參考mos文章:
select emp正常,但是insert、delete、update就報 ORA-00942: table or view does not exist
下面重現這個問題:
#建立物化檢視log表在emp上
SQL> create materialized view log on emp with rowid;
Materialized view log created.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
MLOG$_EMP TABLE
SALGRADE TABLE
#直接刪除log表
SQL> drop table MLOG$_EMP purge;
Table dropped.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
#進行select、insert、update、delete操作:
SQL> select count(*) from emp;
COUNT(*)
----------
14
#發現insert、delete、update報ORA-00942
SQL> update emp set empno=empno+1;
update emp set empno=empno+1
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> delete emp where empno=7379;
delete emp where empno=7379
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> insert into emp(empno) values(1);
insert into emp(empno) values(1)
*
ERROR at line 1:
ORA-00942: table or view does not exist
解決方法:
#查出dba_mview_logs中存在,而的log表不存在的物件
select 'drop materialized view log on '||mvl.log_owner||'.'||mvl.master||';' cmd from dba_mview_logs mvl where not exists ( select table_name from dba_tables tab where tab.owner = mvl.log_owner and tab.table_name = mvl.log_table ) ;
CMD
--------------------------------------------------------------------------------
drop materialized view log on SCOTT.EMP;
#執行正確的刪除 materialized view log 語句
SQL> drop materialized view log on SCOTT.EMP;
Materialized view log dropped.
#問題解決
SQL> delete emp where empno=7379;
1 row deleted.
SQL> rollback;
Rollback complete.
參考mos文章:
|
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27000195/viewspace-1400038/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物化檢視日誌表被DROP後建立物化檢視報錯
- 檢視insert,delete,update對基表的影響(檢視初識)delete
- MongoDB入門系列(二):Insert、Update、Delete、DropMongoDBdelete
- 物化檢視匯出匯入可能導致物化檢視日誌的失效
- 多個物化檢視導致物化日誌無法及時更新
- 物化檢視妙用__表同步使用物化檢視方法
- 由於物化檢視定義為on commit導致update更新基錶慢的解決方案MIT
- DELETE資料導致INSERT邏輯讀增加delete
- 建立物化檢視導致資料庫例項崩潰資料庫
- 34、VIEW可以insert,delete,update.Viewdelete
- 物化檢視日誌對UPDATE的影響
- Thinkphp 3.2.3 parseWhere設計缺陷導致update/delete注入 分析PHPdelete
- Default Locking for INSERT, UPDATE, DELETE, and SELECT ... FOR UPDATE (351)delete
- ORACLE RAC叢集大範圍delete大表與insert&update同時執行導致活動會話數飆升Oracledelete會話
- mysql innodb新建索引堵塞update ,insert,deleteMySql索引delete
- MySQL For Update導致全表排他鎖MySql
- ZT 定位導致物化檢視無法快速重新整理的原因
- SQLite語句(二):INSERT DELETE UPDATE SELECTSQLitedelete
- sql server 帶有OUTPUT的INSERT,DELETE,UPDATESQLServerdelete
- 如何插入insert_update,delete_select特殊字元&到oracle表中delete字元Oracle
- 【物化檢視】幾種物化檢視日誌分析
- 利用insert,update和delete注入獲取資料delete
- mysql 在delete、insert、update 時,page的變化MySqldelete
- MySQL之資料的insert-delete-update操作MySqldelete
- MERGE新特性(UPDATE WHERE,DELETE WHERE,INSERT WHERE)delete
- 模擬insert,update和delete造成阻塞的示例delete
- LINQ to SQL語句之Insert/Update/Delete操作SQLdelete
- Oracle資料庫中Insert、Update、Delete操作速度Oracle資料庫delete
- 建立遠端基表的物化檢視
- trigger和物化檢視同步表
- 【物化檢視】根據物化檢視日誌快速重新整理物化檢視的過程
- oracle物化檢視Oracle
- KunlunDB功能之insert/update/delete...returning語句delete
- 索引是否也能提高UPDATE,DELETE,INSERT速度 解釋索引delete
- 物化檢視中的統計資訊導致的查詢問題分析和修復
- 小議物化檢視與基表資料不一致的消除(四)
- 小議物化檢視與基表資料不一致的消除(二)
- 小議物化檢視與基表資料不一致的消除(一)