[bbk4766] 第29集 第三章 Flashback Table 06

/*********************************************************************/

实验目的:验证在sys用户下创建的表,无法实现flashback table功能

实验步骤:

  1、sys->create table emp -> 7369 900

  2、error->update --7369 900-1900

  3、定位错误--flashback version query

  4、recover->flashback table

/*********************************************************************/

1、登陆、建表、验证查询

USER is "SCOTT"
SQL> conn /as sysdba
Connected.
SQL> create table emp as select * from SCOTT.emp;

Table created.

SQL> desc emp;
 Name                                                  Null?    Type
 ----------------------------------------------------- -------- ------------------------------------
 EMPNO                                                          NUMBER(4)
 ENAME                                                          VARCHAR2(10)
 JOB                                                            VARCHAR2(9)
 MGR                                                            NUMBER(4)
 HIREDATE                                                       DATE
 SAL                                                            NUMBER(7,2)
 COMM                                                           NUMBER(7,2)
 DEPTNO                                                         NUMBER(2)

SQL> select empno,ename,sal from emp;

     EMPNO ENAME             SAL
---------- ---------- ----------
      7369 SMITH             800
      7499 ALLEN            1600
      7521 WARD             1250
      7566 JONES            2975
      7654 MARTIN           1250
      7698 BLAKE            2850
      7782 CLARK            2450
      7788 SCOTT            3000
      7839 KING             5000
      7844 TURNER           1500
      7876 ADAMS            1100

     EMPNO ENAME             SAL
---------- ---------- ----------
      7900 JAMES             950
      7902 FORD             3000
      7934 MILLER           1300

14 rows selected.
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') current_date from dual;

CURRENT_DATE
-------------------
2013-05-17 11:26:27
SQL> update emp set sal=1900 where empno=7369;

1 row updated.

SQL> commit;

Commit complete.
SQL> select empno,ename,sal from emp
  2  as of timestamp to_date('2013-05-17 11:26:27','yyyy-mm-dd hh24:mi:ss');

     EMPNO ENAME             SAL
---------- ---------- ----------
      7369 SMITH             800
      7499 ALLEN            1600
      7521 WARD             1250
      7566 JONES            2975
      7654 MARTIN           1250
      7698 BLAKE            2850
      7782 CLARK            2450
      7788 SCOTT            3000
      7839 KING             5000
      7844 TURNER           1500
      7876 ADAMS            1100

     EMPNO ENAME             SAL
---------- ---------- ----------
      7900 JAMES             950
      7902 FORD             3000
      7934 MILLER           1300

14 rows selected.
SQL> flashback table emp to timestamp to_date('2013-05-17 11:26:27','yyyy-mm-dd hh24:mi:ss');
flashback table emp to timestamp to_date('2013-05-17 11:26:27','yyyy-mm-dd hh24:mi:ss')
                *
ERROR at line 1:
ORA-08185: Flashback not supported for user SYS

/**********************************************************************************************************/

实验目的:验证建立在sys用户下的表,即使没有建立在sys tablespace下,但是是以sys身份创建的,同样也无法使用flashback table功能闪回表

实验步骤:

/**********************************************************************************************************/

/********************************************************************************************/

实验目的:验证非sys用户,创建表时创建在sys tablespace上,是否可以使用flashback table功能?

实验步骤:

实验结论:可以

      flashback table功能是以schema为参考依据,而不是以tablespace为参考. 

/********************************************************************************************/

原文地址:https://www.cnblogs.com/arcer/p/3083424.html