From Oracle 10g, Dropped tables can be restored. Meaning, you can now rollback one of your DDL statement. This is how you do it.
drop table t;
Table dropped.
desc t;
ERROR: ORA-04043: object t does not exist
select count(*) from t;
select count(*) from t;
ERROR at line 1: ORA-00942: table or view does not exist
flashback table t to before drop;
Flashback complete.
You have now restored your table.
Behind the scenes, what happens is that your dropped table is renamed and just gets restored from the recyle-bin when you “flashback”.
drop table t;
Table dropped.
select table_name from user_tables;
no rows selected
select object_name from recyclebin;
OBJECT_NAME
——————————
BIN$7oTtcup30ZfgMAGK/3hjKw==
flashback table t to before drop;
Flashback complete.
select object_name from recyclebin;
no rows selected
select table_name from user_tables;
TABLE_NAME
——————————
T
So, your table will not really be dropped. But just like any operating system moved to the recycle-bin from which you can restore later.
If you dont want your tables to be restored and be gone forever, then
drop table t purge;
Table dropped.
select table_name from user_tables;
no rows selected
select object_name from recyclebin;
no rows selected
source: Ask Tom