DROP TABLE PURGE, FLASHBACK TABLE

Oracle10g부터 테이블을 삭제하면 바로 삭제되지 않고 일종의 윈도우의 휴지통처럼 상태가 바뀌게 된다.
이를 확인하려면 테이블을 DROP 해보고 SELECT * FROM TAB 을 해보자. 그러면 삭제한 테이블 대신에 BIN$.... 같은 테이블이 보일것이다. 이것은 완전히 삭제가 된것이 아니고 휴지통에 들어가있는 것처럼 된건데 복구도 가능하다.

현재 삭제된 테이블을 보려면 'show recyclebin' 이나 'select * from recyclebin' 으로 조회하면 알수 있다.

테이블 삭제
recyclebin 으로 보내지 않고 바로 삭제 하려면 아래와 같이 'PURGE' 키워드를 사용하여 삭제 한다.

DROP TABLE tableName PURGE;

휴지통 비우기
recyclebin에 있는 내용을 삭제 하려면 아래와 같이 한다.
PURGE RECYCLEBIN;


FLASHBACK TABLE (테이블 복구)
삭제된 테이블은 복구가 가능한데 그때 사용하는 키워드가 'FLASHBACK TABLE'이다. 

FLASHBACK TABLE[schema.]table[,
[ schema.]table ]...
TO { TIMESTAMP | SCN } expr
[ { ENABLE | DISABLE } TRIGGERS ];

- table : 삭제된 테이블 명을 말하고 이는 'show recyclebin' 이나 'select * from recyclebin'으로 조회하면 알 수 있다.
- expr :  BEFORE
- TRIGGERS : DROP;

만약 EMP 테이블을 삭제 후 복구를 하기 위해서는 다음과 같다.

FLASHBACK TABLE emp TO BEFORE DROP;