删除所有表sqlplus

时间:2014-05-01 21:33:38

标签: sql oracle sqlplus

每当我执行select * from tab;时,我都会得到我没有创建的表格。 它看起来像:

TNAME       TABTYPE  CLUSTERID
------------------------------ ------- ----------
BIN$GGrKjbVGTVaus4568IEhUQ==$0 TABLE
BIN$H+a0o3uyTTKTOA8WMkNltg==$0 TABLE
BIN$IUNyfOwkS0WSEVjbn04mNw==$0 TABLE
BIN$K/3NJw5zRXyRqPixL3tqDA==$0 TABLE
BIN$KQw9SejEToywXlHp18FMZA==$0 TABLE
BIN$MOEfgWgsS0GkC/CpYW+cxA==$0 TABLE
BIN$QkUYVciPQpWBwqBhxH+Few==$0 TABLE
BIN$QmtbaOYiTHCGEE0PRiLzmg==$0 TABLE
BIN$QxF4/JShTxu8PYIx8g/L7Q==$0 TABLE
BIN$UtEI7RbiQvOYzKqJEibwKQ==$0 TABLE
BIN$VMG0FXp2ROCKbedj3Ge9hg==$0 TABLE

我尝试过

select 'drop table '||table_name||' cascade constraints;' from user_tables; 

在假脱机上并执行但未选中这些表。它看起来非常混乱,让我烦恼不已。这些是什么?有什么方法可以摆脱它们吗?或者我是否必须处理它并使用它?

2 个答案:

答案 0 :(得分:1)

他们是什么?

A 看起来像在RECYCLEBIN中删除并保留的表格。


我有什么方法可以摆脱它们吗?

A 您可以使用,例如PURGE TABLE BIN$GGrKjbVGTVaus4568IEhUQ==$0 ;删除它们。

那将是他们个人。请注意,索引和LOB(以及其他外部存储)也可能在回收站中具有条目。您可以使用其他语句清除回收站中的所有条目。


或者我是否必须处理它并使用它?

A 这取决于你。

有一些语句可以清除当前用户的回收站,或者如果您有权限,则可以清除整个数据库。您也可以禁用recyclebin,或者(我认为)DROP TABLE上有一个选项会丢弃一个表而不将其保留在recyclebin中(所以这些都不会在将来创建) 。)

我没有必要重复Oracle文档的内容。

请参阅:http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables011.htm#ADMIN01511

答案 1 :(得分:0)

发布评论以提高可见度.. 归功于@Tomás指出我正确的方向。

我必须这样做 purge recyclebin; 而不是purge dba_recyclebin,因为我没有足够的权限(我是通过ssh登录的学生)。

如果要关闭回收站,请使用ALTER SESSION SET recyclebin = OFF;