当前位置:Gxlcms > 数据库问题 > oracle的闪回查询,闪回删除:

oracle的闪回查询,闪回删除:

时间:2021-07-01 10:21:17 帮助过:27人阅读

COUNT(*)

-----------------

0

1 row selected.

SCOTT@ORA12C> select count(*) from t1 as of timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘);

COUNT(*)

-----------------

   91692

1 row selected.

SCOTT@ORA12C> flashback table t1 to timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘);

flashback table t1 to timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘)                *

ERROR at line 1:

ORA-08189: cannot flashback the table because row movement is not enabled

SCOTT@ORA12C> alter table t1 enable row movement;

Table altered.

SCOTT@ORA12C> flashback table t1 to timestamp to_timestamp(‘2015-09-20 14:54:00‘,‘yyyy-mm-dd hh24:mi:ss‘);

Flashback complete.

SCOTT@ORA12C> select count(*) from t1;

COUNT(*)

-----------------

   91692


1 row selected.

注意system表空间下面的表不能闪回,不能跨越DDL语句,


SYS@ORA12C> flashback table t2 to timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);

flashback table t2 to timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘)                *

ERROR at line 1:

ORA-08185: Flashback not supported for user SYS

但是可以查询:

SYS@ORA12C>  select count(*) from t2 as of timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);


COUNT(*)

-----------------

   91694

1 row selected.

可以重新建一张表或者直接insert:

SYS@ORA12C> create table t3 as select * from t2 as of timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);

Table created.

SYS@ORA12C> insert into t2 select * from t2 as of timestamp to_timestamp(‘2015-09-20 15:07:25‘,‘yyyy-mm-dd hh24:mi:ss‘);

91694 rows created.

@ORA12C> commit;

Commit complete.

oracle的闪回查询,闪回删除:

标签:oracle闪回

人气教程排行