我实际上已删除而不是删除Oracle SQL中的表。
Drop table emp;
有没有办法找回来?
答案 0 :(得分:7)
实际上存在一种检索已删除表的方法。请找到以下步骤。删除表时,数据库不会立即删除与表关联的空间。而是重命名该表,并将其与任何关联的对象一起放在数据库的回收站中。闪回删除操作从回收站恢复表。
另外请检查您是否使用oracle 10g及以上版本。
SQL> drop table vimal;
Table dropped.
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
VIMAL BIN$c9/MeUSERvCmafRSweHlWQ==$0 TABLE 2017-01- 06:16:57:29
SQL> flashback table "BIN$c9/MeUSERvCmafRSweHlWQ==$0" to before drop;
Flashback complete.
SQL> select * from vimal;
NAME ID
---------- ----------
f 1
我请您阅读oracle文档以获得进一步说明。请仔细阅读。
可以参考:https://docs.oracle.com/cd/B19306_01/backup.102/b14192/flashptr004.htm
答案 1 :(得分:1)
在Oracle中,只要没有使用PURGE选项删除表,就可以轻松恢复丢弃的表。如果表被删除并且表占用的空间被释放并且表没有被移动到回收站中。但是如果在没有PURGE选项的情况下删除表,Oracle就会有这个非常简洁的功能 - 回收站,类似于Windows中的回收站。 Oracle中有两个recyle bin视图:USER_RECYCLEBIN和DBA_RECYCLEBIN,同义词RECYCLEBIN指向USER_RECYCLEBIN。
http://elena-sqldba.blogspot.in/2013/01/how-to-retrieve-dropped-table-in-oracle.html
答案 2 :(得分:0)
使用此:
select object_name, original_name, type from recyclebin;
虽然已删除的表已重命名,但它会保留其数据,您可以使用flashback
轻松地“取消”表格。“/ p>
flashback table yourTableName to before drop;