WEB开发网
开发学院数据库Oracle Oracle 10G 中的"回收站" 阅读

Oracle 10G 中的"回收站"

 2007-05-09 12:11:59 来源:WEB开发网   
核心提示: SQL>; SELECT object_name, original_name FROM user_recyclebin;OBJECT_NAME ORIGINAL_NAME RB$$41888$TABLE$0 FOOSQL>; DESC RB$$41888$TABLE$0名称

SQL>; SELECT object_name, original_name FROM user_recyclebin;

OBJECT_NAME ORIGINAL_NAME

-------------------- --------------------

RB$$41888$TABLE$0 FOO

SQL>; DESC RB$$41888$TABLE$0

名称 是否为空? 类型

----------------------------------------- -------- -------------

DUMMY VARCHAR2(1)

当一个表被删除并移动到"回收站"中,它的名字要进行一些转换.这样的目的显而易见是为了避免

同类对象名称的重复.(Windows上,经过了特殊的处理,回收站里的操作系统文件可以重名.)

转换后的名字格式如下:

RB$$objn$object_type$version

其中的RB,代表Recycle Bin. objn为表的目录对象号. object_type表示对象类型. version表示版本号.

由数据库指定。foo表被删除后,在数据库回收站里变成了RB$$41888$TABLE$0 。从名字可以看出,这个对象的

类型是Table,Version是0.

SQL>; CREATE TABLE foo AS SELECT * FROM DUAL;

表已创建。

SQL>; SELECT table_name FROM user_tables;

TABLE_NAME

------------------------------

FOO

RB$$41888$TABLE$0

SQL>; DROP TABLE foo;

表已丢弃。

SQL>; SELECT object_name, original_name FROM user_recyclebin;

OBJECT_NAME ORIGINAL_NAME

-------------------- --------------------

RB$$41889$TABLE$0 FOO

RB$$41888$TABLE$0 FOO

SQL>;

能看出来,虽然源表名字相同,在回收站里的对象名字是不同的。

已经放到回收站里的表是不能用drop 命令删除的:

Tags:Oracle quot 回收站

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接