在9i上执行的操作

查询test表中记录

select * from test;

删除test表中记录

delete from test;

获得过去的会话

exec dbms_flashback.disable;

查询出3分钟前这个test表的情况

select * from test as of timestamp(systimestamp - interval '3' minute );

将查出的记录插入到误删除数据的表中

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表闪回到2005年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'