1.闪回数据库和闪回查询
 
SQL>variable SCN number
SQL>exec :SCN :=dbms_flashback.get_system_change_number
SQL>print SCN
 
比较
select * from emp;
select * from emp as of scn :SCN;
select * from emp as of timestamp (SYSTIMESTAMP - INTERVAL '1' DAY);
select * from emp as of timestamp to_timestamp(sysdate - 1);
select * from emp as of timestamp to_timestamp('20010101 00:00:00','YYYYMMDD HH24:MI:SS');
 
SQL>flashback table emp to scn :SCN;
如果你得到一个错误
ORA-08189: cannot flashback the table because row movement is not enabled using the FLASHBACK command.
解决办法 ALTER TABLE EMP ENABLE ROWMOVEMENT
这个命令的用处是,允许修改分配给行的rowid。闪回操作会对EMP先delete然后重新插入行,这样这行就会被分配一个新的rowid,因此需要修改rowid的权限。
 
2.关于SQL标准
SQL标准定义了一种语言(SQL)以及数据库的行为(事务、隔离级别等)。
目前有 SQL89 >> SQL92 >> SQL99
SQL92有四个层次
    入门级:只是对SQL89稍作修改
    过渡级
    中间级:动态SQL、级联Delete以保证引用完整性、Date和Time数据类型、域、
                    变长字符串、Case表达式、数据之间Cast函数
    完备级:连接管理、Bit串数据类型、可延迟的完整性约束、
                    From子句中的导出表、Check子句中的子查询、临时表
SQL99只定义了两级一致性:核心(Core)一致性和增强(enhanced)一致性。目前还没有哪个开发商经认证符合两个一致性。