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