查詢test表中記錄
select * from test;
刪除test表中記錄
delete from test;
獲得過去的會話
exec dbms_flashback.disable;
查詢出3分鐘前這個test表的情況
select * from test as of timestamp(systimestamp - interval '3' minute );
最大時間值為8277,但不知道該值是根據什麼來變化的?
將查出的記錄插入到誤刪除資料的表中
insert into test select * from test as of timestamp(systimestamp - interval '30' minute );
兩種方法:
1、使用dbms_flshback
閃回:dbms_flashback.enable_at_time(to_timestamp('2006-5-24 8:26:0', 'yyyy-mm-dd hh24:mi:ss'))
_changexec dbms_flashback.enable_at_systeme_number(4143031890000);--change number
取消閃回:exec dbms_flashback.disable
2、語句級
select * from dept as of scn 4143031890000);--change number
select * from dept as of timestamp(to_timestamp('2006-5-24 8:26:0', 'yyyy-mm-dd hh24:mi:ss'));
在10g上執行的操作
例:執行將test表閃回到2023年5月7日下午3點。
sql>flashback table test to timestamp to_timestamp('2005-05-07 15:00:00','yyyy-mm-dd hh24:mi:ss');
修改資料庫中某些字段存在的空格
update laagent set name=replace(name,' ','') where agentcode='116000001'
oracle誤操作閃回
今天操作oracle資料庫時,做乙個update資料時,不小心少寫了個where,看這粗心大意的。於是乎,把所有的員工工號都給更新成乙個同乙個工號了。這是乙個悲催的故事。因為工號是check了好多次才存入資料庫,工號是唯一性的啊 如果多次commit資料後,那可不可以閃回呢?貌似不可以。閃回只能暫存...
Oracle閃回資料操作
問題 在使用oracle時,不小心刪錯了資料,並提交了怎麼怎麼辦?解決方法 這個時候就需要使用oracle的閃回功能。flashback table 表名 to timestamp to timestamp 2014 0315 09 30 00 yyyy mm dd hh24 mi ss 使用上述語...
171211之Oracle閃回操作
簡介 oracle的閃回功能可以在對資料庫進行不完全恢復的情況下,對某乙個指定的表進行恢復。閃回資料庫是進行時間點恢復的新方法,它能夠快速將oracle恢復到以前的時間,以更正由於邏輯資料損壞或使用者錯誤而引起的問題。當需要恢復時,可以將資料庫恢復到錯誤前的時間點,並且只恢復改變的資料塊。oracl...