oracle 10g 关于回收站的使用
2008-04-24 17:48
525 查看
oracle 10g 关于回收站的使用
针对Recycle Bin对象的操作
已经放到回收站里的表是不能用drop 命令删除的(注意对象名字上的双引号):
SQL> DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"
2 /
DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"
*
ERROR at line 1:
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
SQL>
如果要清掉该对象,使用purge命令:
SQL> PURGE table oreginal_table_name//这里用得表的原名 用"BIN$V3f/oYUITrCEF2cotS5JaA==$0"不行。。。
2 /
Table purged.
SQL> SELECT object_name, original_name FROM user_recyclebin;
OBJECT_NAME ORIGINAL_NAME
------------------------------ ---------------
BIN$VL+ZsqVlQF6R2nYnwAqtvw==$0 FOO
SQL>
对象已经清掉。如果直接清空所有的Recycle Bin中的对象:
SQL> PURGE RECYCLEBIN;
Recyclebin purged.
SQL> SELECT object_name, original_name FROM user_recyclebin;
no rows selected
SQL>
恢复表,用回闪表的功能:
SQL> FLASHBACK TABLE foo TO BEFORE DROP;
Flashback complete.
SQL>SELECT table_name FROM user_tables;
TABLE_NAME
------------------------------------------------------------
FOO
SQL>
注:在10g Beta版本中,使用Undrop命令来做到这一点.
有的时候,可能同一个名字的表被删除到回收站中:
SQL> DROP TABLE FOO;
Table dropped.
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03
SQL> CREATE TABLE foo AS SELECT * FROM DUAL;
Table created.
SQL> DROP TABLE foo;
Table dropped.
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FOO BIN$J63QaUaKTmC1glat+imjeg==$0 TABLE 2004-10-30:15:18:50
FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03
SQL> FLASHBACK TABLE FOO TO BEFORE DROP;
Flashback complete.
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03
SQL>
默认的恢复是第一个被删除的FOO表。如果要恢复指定的表,可以在FLASHBACK TABLE 后面加上指定的RECYCLEBIN 参数指定其他的名字:
SQL> FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP;
FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP
*
ERROR at line 1:
ORA-38312: original name is used by an existing object
SQL> FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP
2 RENAME TO foo2;
Flashback complete.
SQL>
针对Recycle Bin对象的操作
已经放到回收站里的表是不能用drop 命令删除的(注意对象名字上的双引号):
SQL> DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"
2 /
DROP table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"
*
ERROR at line 1:
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
SQL>
如果要清掉该对象,使用purge命令:
SQL> PURGE table oreginal_table_name//这里用得表的原名 用"BIN$V3f/oYUITrCEF2cotS5JaA==$0"不行。。。
2 /
Table purged.
SQL> SELECT object_name, original_name FROM user_recyclebin;
OBJECT_NAME ORIGINAL_NAME
------------------------------ ---------------
BIN$VL+ZsqVlQF6R2nYnwAqtvw==$0 FOO
SQL>
对象已经清掉。如果直接清空所有的Recycle Bin中的对象:
SQL> PURGE RECYCLEBIN;
Recyclebin purged.
SQL> SELECT object_name, original_name FROM user_recyclebin;
no rows selected
SQL>
恢复表,用回闪表的功能:
SQL> FLASHBACK TABLE foo TO BEFORE DROP;
Flashback complete.
SQL>SELECT table_name FROM user_tables;
TABLE_NAME
------------------------------------------------------------
FOO
SQL>
注:在10g Beta版本中,使用Undrop命令来做到这一点.
有的时候,可能同一个名字的表被删除到回收站中:
SQL> DROP TABLE FOO;
Table dropped.
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03
SQL> CREATE TABLE foo AS SELECT * FROM DUAL;
Table created.
SQL> DROP TABLE foo;
Table dropped.
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FOO BIN$J63QaUaKTmC1glat+imjeg==$0 TABLE 2004-10-30:15:18:50
FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03
SQL> FLASHBACK TABLE FOO TO BEFORE DROP;
Flashback complete.
SQL> SHOW RECYCLEBIN
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FOO BIN$lfTbzOjISXaw8u0BIO7pNA==$0 TABLE 2004-10-30:15:18:03
SQL>
默认的恢复是第一个被删除的FOO表。如果要恢复指定的表,可以在FLASHBACK TABLE 后面加上指定的RECYCLEBIN 参数指定其他的名字:
SQL> FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP;
FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP
*
ERROR at line 1:
ORA-38312: original name is used by an existing object
SQL> FLASHBACK TABLE "BIN$lfTbzOjISXaw8u0BIO7pNA==$0" TO BEFORE DROP
2 RENAME TO foo2;
Flashback complete.
SQL>
相关文章推荐
- Oracle 10G中关于约束在表和列中使用详解.
- Oracle 10G中关于序列使用详解
- Oracle 10G中关于约束在表和列中使用详解.
- Oracle 10G中关于约束在表和列中使用详解
- Oracle 10G中关于序列使用详解.
- 关于oracle 10g调度程序PLSQL_BLOCK方式无法使用truncate的问题
- 关于oracle 10g的LogMiner使用方法
- Oracle 10G中关于序列使用详解.
- oracle 10G 关于回收站的一些操作
- Oracle 10G中关于序列使用详解.
- 关于oracle 临时表的使用
- 使用VMware Server在Oracle Enterprise Linux上安装Oracle RAC 10g
- 关于oracle使用客户端无法卸载的问题
- 回收站引发ORACLE查询表空间使用缓慢
- Oracle 10g使用游标更新或删除数据
- 关于oracle 使用大内存出现:ORA-27102: out of memory
- oracle 10g logminer 使用
- Oracle回收站使用全攻略
- spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站
- 关于oracle 10g 不能进OEM的问题