Oracle 10G 中的"回收站"
2007-05-09 12:11:59 来源:WEB开发网SQL>; drop table RB$$41888$TABLE$0;
drop table RB$$41888$TABLE$0
*
ERROR 位于第 1 行:
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
如果要清掉改对象,使用purge命令:
SQL>; PURGE table RB$$41888$TABLE$0;
Table purged.
SQL>; SELECT object_name, original_name FROM user_recyclebin;
OBJECT_NAME ORIGINAL_NAME
-------------------- --------------------
RB$$41889$TABLE$0 FOO
对象已经清掉.
恢复表,使用Undrop命令.
SQL>; undrop table RB$$41889$TABLE$0;
Table undropped.
SQL>; SELECT object_name, original_name FROM user_recyclebin;
未选定行
SQL>; SELECT table_name FROM user_tables;
TABLE_NAME
------------------------------
RB$$41889$TABLE$0
SQL>; desc foo;
ERROR:
ORA-04043: 对象 foo 不存在
恢复后的表的名字为RB$$41889$TABLE$0,如果指定名字,使用" as 表名字 "
如: undrop table RB$$41889$TABLE$0 as Foo这样的语句.更为详细的语法,请
查阅10G的SQL参考手册.
SQL>;
SQL>; desc RB$$41889$TABLE$0;
名称 是否为空? 类型
----------------------------------------- -------- -------------
DUMMY VARCHAR2(1)
SQL>; DROP TABLE RB$$41889$TABLE$0;
表已丢弃。
SQL>; SELECT table_name FROM user_tables;
TABLE_NAME
------------------------------
RB$$41889$TABLE$1
SQL>;
如果我们这个时候再删除RB$$41889$TABLE$0,可观察到回收站里该表版本号的变化。
如果空间一直够用,回收站里的对象会一直保持(如果你不手工进行Purge的话)。如果空间不足,
回收站里的对象会被清空。看我们下面这个例子:
让我们创建一个大一点的表:
SQL>; select object_name from user_recyclebin;
OBJECT_NAME
------------------------------
RB$$41893$TABLE$0
SQL>; CREATE TABLE foo_bigger AS SELECT * FROM all_objects WHERE ROWNUM<7980;
表已创建。
SQL>; SELECT table_name FROM user_tables;
TABLE_NAME
------------------------------
FOO_BIGGER
SQL>; SELECT object_name, original_name FROM user_recyclebin;
未选定行
SQL>;
哦,果真,回收站里的内容已经被删掉了。还要注意,在空间不足的时候Drop表,也是不能放到回收站里的。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接