SQL> desc recyclebin Name Null? Type ----------------------------------------- -------- ---------------------------- OBJECT_NAME NOT NULL VARCHAR2(128) ORIGINAL_NAME VARCHAR2(128) OPERATION VARCHAR2(9) TYPE VARCHAR2(25) TS_NAME VARCHAR2(30) CREATETIME VARCHAR2(19) DROPTIME VARCHAR2(19) DROPSCN NUMBER PARTITION_NAME VARCHAR2(128) CAN_UNDROP VARCHAR2(3) CAN_PURGE VARCHAR2(3) RELATED NOT NULL NUMBER BASE_OBJECT NOT NULL NUMBER PURGE_OBJECT NOT NULL NUMBER SPACE NUMBER SQL> column object_name format A25; SQL> column original_name format A15; SQL> select OBJECT_NAME,ORIGINAL_NAME 2 from recyclebin; no rows selected SQL> create table emp as select * from employees; Table created. SQL> select count(*) from empl 2 SQL> ed Wrote file afiedt.buf 1* select count(*) from emp SQL> r 1* select count(*) from emp COUNT(*) ---------- 107 SQL> drop table emp; Table dropped. SQL> select OBJECT_NAME,ORIGINAL_NAME 2 from recyclebin; OBJECT_NAME ORIGINAL_NAME ------------------------- --------------- BIN$j7Xf6IDcQMysGQ7bGx2PV EMP g==$0 SQL> flashback table emp to before drop; Flashback complete. SQL> desc emp Name Null? Type ----------------------------------------- -------- ---------------------------- EMPLOYEE_ID NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4) SQL> drop table emp purge; Table dropped. SQL> select OBJECT_NAME,ORIGINAL_NAME 2 from recyclebin; no rows selected SQL> create table emp as select * from employees; Table created. SQL> desc emp Name Null? Type ----------------------------------------- -------- ---------------------------- EMPLOYEE_ID NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4) SQL> select count(*) from emp; COUNT(*) ---------- 107 SQL> alter table emp enable row movement; Table altered. SQL> delete from emp 2 where department_id>=50; 96 rows deleted. SQL> commit; Commit complete. SQL> --Now we need to issue flashback table ... to timestamp in order to recover deleted data SQL> flashback table emp to timestamp systimestamp -interval '3' minute; Flashback complete. SQL> select count(*) from emp; COUNT(*) ---------- 11 SQL> flashback table emp to timestamp systimestamp -interval '5' minute; Flashback complete. SQL> select count(*) from emp; COUNT(*) ---------- 107 SQL> --Flashback table using SCN value SQL> SQL> select current_scn from v$database; select current_scn from v$database * ERROR at line 1: ORA-00942: table or view does not exist SQL> select timestamp_to_scn(sysdate) from dual; TIMESTAMP_TO_SCN(SYSDATE) ------------------------- 8113824 SQL> delete from emp 2 where department_id>50; 51 rows deleted. SQL> commit; Commit complete. SQL> select count(*) from emp; COUNT(*) ---------- 56 SQL> select timestamp_to_scn(sysdate) from dual; TIMESTAMP_TO_SCN(SYSDATE) ------------------------- 8114158 SQL> flashback table emp to scn 8113824; Flashback complete. SQL> select count(*) from emp; COUNT(*) ---------- 107 SQL> drop table emp purge; Table dropped. SQL> create table emp as select * fom employees; create table emp as select * fom employees * ERROR at line 1: ORA-00923: FROM keyword not found where expected SQL> ed Wrote file afiedt.buf 1* create table emp as select * from employees SQL> r 1* create table emp as select * from employees Table created. SQL> select timestamp_to_scn(sysdate) from dual; TIMESTAMP_TO_SCN(SYSDATE) ------------------------- 8114398 SQL> delete from emp where department_id>50; 51 rows deleted. SQL> commit; Commit complete. SQL> select count(*) from emp; COUNT(*) ---------- 56 SQL> flashback table emp to scn 8114398; flashback table emp to scn 8114398 * ERROR at line 1: ORA-08189: cannot flashback the table because row movement is not enabled SQL> spool off