|
MPINCOME TABLE
VIEW1 VIEW
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
VIEW2 VIEW
HREMP SYNONYM
MSG1 TABLE
BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE
PM_CI TABLE
PM_STU TABLE
FLASHBACK_TABLE TABLE
SYS_TEMP_FBT TABLE
已选择19行。
SQL> select * from BIN$UhseqyX1Reyl5iurpupyEg==$0;
select * from BIN$UhseqyX1Reyl5iurpupyEg==$0
*
第 1 行出现错误:
ORA-00933: SQL 命令未正确结束
SQL> select * from "BIN$UhseqyX1Reyl5iurpupyEg==$0";
TID TNAME
---------- --------------------
3 aaa
4 aaa
5 aaa
8 aaa
SQL> host cls
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTSEQ BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE 2012-10-25:10:47:38
SQL> --执行闪回删除
SQL> flashback table testseq to before drop;
闪回完成。
SQL> show recyclebin
SQL> select * from testseq;
TID TNAME
---------- --------------------
3 aaa
4 aaa
5 aaa
8 aaa
SQL> host cls
SQL> drop table testseq;
表已删除。
SQL> create table testseq(tid number);
表已创建。
SQL> drop table testseq;
表已删除。
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTSEQ BIN$ZsXHtmHLTLu40DAC6jiKqg==$0 TABLE 2012-10-25:10:51:22
TESTSEQ BIN$hBllsvl5Tum9hHaSvtQhag==$0 TABLE 2012-10-25:10:51:01
SQL> flashback table testseq to before drop;
闪回完成。
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTSEQ BIN$hBllsvl5Tum9hHaSvtQhag==$0 TABLE 2012-10-25:10:51:01
SQL> select * from testseq;
未选定行
SQL> flashback table testseq to before drop;
flashback table testseq to before drop
*
第 1 行出现错误:
ORA-38312: 原始名称已被现有对象使用
SQL> --闪回重名的表
SQL> flashback table testseq to before drop rename to testseq_old;
闪回完成。
SQL> select * from testseq_old;
TID TNAME
---------- --------------------
3 aaa
4 aaa
5 aaa
8 aaa
SQL> host cls
SQL> /*
SQL> 小结:
SQL> 基本概念: 1. SCN 2. 900秒 3. 权限 flashback any tables
SQL> 闪回表:将表回退到过去的一个时间
SQL> 1. 行移动
SQL> 2. 执行闪回表
SQL> 注意: 系统表不能闪回;不能跨越DDL
SQL> 问题: 如何得到离该操作最近的一个时间??
SQL> 闪回删除: Oracle的回收站
SQL> 1. 执行闪回删除
SQL> 2. 通过回收站中的名字闪回(双引号)
SQL> 3. 重名的表
SQL> 4. 触发器(disable)
SQL> */
SQL> host cls
SQL> --闪回版本查询
SQL> create table versions_table
2 (tid number,tname varchar2(20));
表已创建。
SQL> insert into versions_table values(1.'Tom');
insert into versions_table values(1.'Tom')
*
第 1 行出现错误:
ORA-00917: 缺失逗号
SQL> insert into versions_table values(1,'Tom');
已创建 1 行。
SQL> commit;
提交完成。
SQL> insert into versions_table values(2,'Mary');
已创建 1 行。
SQL> commit;
提交完成。
SQL> insert into versions_table values(3,'Mike');
已创建 1 行。
SQL> commit;
提交完成。
SQL> update versions_table set tname='MaryNew' where tid=2;
已更新 1 行。
SQL> commit;
提交完成。
SQL> select * from versions_table;
TID TNAME
---------- --------------------
1 Tom
2 MaryNew
3 Mike
SQL> --如何查询Mary?
SQL> --执行闪回版本查询
SQL> select tid,tname
2 from versions_table
3 versions between TIMESTAMP MINVALUE and MAXVALUE
4 order by 1;
TID TNAME
---------- ----------- |