Oracle 檢查表的數(shù)據(jù)變動(dòng) |
發(fā)布時(shí)間: 2012/9/18 17:31:40 |
本知識(shí)點(diǎn)僅適用于Oracle 9i以上的版本。 查看表的數(shù)據(jù)變動(dòng)情況請(qǐng)使用SQL語(yǔ)句:select * from user_tab_modifications; user_tab_modifications表的字段如下,從這個(gè)表中能夠輕松找到表中做的修改,刪除,增加記錄的情況 注意以及使用方法: 1、但這張表不是實(shí)時(shí)更新的,默認(rèn)情況15分鐘更新一次,所以你更新一張表,可能在 user_tab_modifications里不能立刻體現(xiàn)出來(lái)。-
3、當(dāng)執(zhí)行上面的存儲(chǔ)過(guò)程出錯(cuò)時(shí)候,錯(cuò)誤如下: ERROR at line 1: ORA-20000: Insufficient privileges ORA-06512: at "SYS.DBMS_STATS", line 2148 ORA-06512: at "SYS.DBMS_STATS", line 14135 ORA-06512: at line 1 哈哈錯(cuò)誤很明顯,沒(méi)有權(quán)限,那么提權(quán)! 4、為用戶提權(quán),首先用管理員賬號(hào)登陸,授予某個(gè)賬戶執(zhí)行DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO的權(quán)限。 grant analyze any to epplm(這里是你的用戶名) 5、OK提權(quán)成功,那么返回到原賬號(hào)(epplm),再執(zhí)行exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO,OK沒(méi)問(wèn)題 6、此時(shí)再執(zhí)行select * from user_tab_modifications,記錄出現(xiàn)了。 7、FLUSH_DATABASE_MONITORING_INFO存儲(chǔ)過(guò)程之后,所有之前的操作都將被提交! 8、對(duì)于Oracle10i以及以上的版本,DML操作,都可以在該表中查到,因?yàn)檫@個(gè)功能默認(rèn)是開(kāi)啟的,如果沒(méi)有開(kāi)啟,可以通過(guò)這個(gè)方法開(kāi)啟:alter table t monitoring; 存儲(chǔ)過(guò)程: create or replace procedure Pro_Analyze_And_TableModify is
3 dbms_output.put_line('開(kāi)始執(zhí)行,過(guò)程很長(zhǎng),請(qǐng)等待'); 4 DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;--立刻刷新 5 insert into TableModifications select * from user_tab_modifications;--兩個(gè)表結(jié)構(gòu)一樣 6 Pro_AnalyzeTables;--執(zhí)行分析表(調(diào)用上一篇的存儲(chǔ)過(guò)程) 7 dbms_output.put_line('執(zhí)行成功'); 8 end Pro_Analyze_And_TableModify; 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |