OCP-V13-710

  1. You executed the following commands in a database session: Which statement is true about the contents of the recycle bin in this situation?
    执行图中语句,在这种情况下的回收站说法正确的是
    OCP-V13-710_第1张图片

A.They remain unaffected.

B.They are moved to flashback logs.

C.They are moved to the undo tablespace.

D.They are moved to a temporary tablespace.

E.The objects in the recycle bin that are in the default tablespace for the session user are cleaned up.
当前会话用户,默认表空间下回收站里面的这个对象被清理掉了

Answer:E

RECYCLE BIN这个东东
好处就是当你删除了一张表或索引什么的后并不是完全删除,就像WINDOWS中的回收站一样,好处就是防止误删除,可以对误删除的表进行恢复,当然也可以清空RECYCLE BIN。

删除表TEST

SQL>DROP TALBE TEST;
SQL>SELECT TALBE_NAMES FROM USER_TALBES;

TABLE_NAME

BIN Z2ptJ6PcRk6mJbM/0BmmAg== 0

–如果只想看RECYCLEBIN内的表名,可以用 SELECT OBJECT_NAME FROM USER_RECYCLEBIN;效果同上显示

发现有一个名为’BIN Z2ptJ6PcRk6mJbM/0BmmAg== 0’的表,这个表就是TEST表DROP掉以后在RECYCLE BIN内产生的表,RECYCLE BIN会以特殊的方法来保证每张被删除的表在RECYCLE BIN内的表名都不一样,即使在未被删除时表名是相同的。

如果想看被删除表的详细点的内容,可用
SQL>SHOW RECYCLEBIN; –这句在SQL*PLUS内可用,但PL/SQL DEV中显示不出内容,不知道怎么会事
或着
SQL>SELECT ORIGINAL_NAME,OBJECT_NAME,TYPE,DROPTIME FROM USER_RECYCLEBIN;

ORIGINAL_NAME OBJECT_NAME TYPE DROPTIME

TEST BIN Z2ptJ6PcRk6mJbM/0BmmAg== 0 TABLE 2007-11-18:21:53:02

也可以用
SQL>DESC “BIN Z2ptJ6PcRk6mJbM/0BmmAg== 0”; –来看被删除表的结构,注意要双引号!!这一句
PL/SQL DEV中也不能用,会显示没有这个表,在SQL*PLUS中可用。

现在对删除后表名的命名简单说一下:
当一个表被删除并移动到”回收站”中,它的名字要进行一些转换。这样的目的显而易见是为了避免同类对象名称的重复。(这一点和Windows操作系统的回收站不同,Windows中的回收站经过了特殊的处理,操作系统文件可以重名。)
转换后的名字格式如下:
BIN uniqueid version 其中BIN代表RecycleBin
unique_id是数据库中该对象的唯一标志,26个字符长度
version表示该对象的版本号

删除recyclebin中的对象

我们用PURGE,语句PURGE TABLE “TABLE_NAME”;
注:双引不要忘记,对RECYCLEBIN中对象操作都要有” “。

如上例,则:
SQL>purge table “BIN 6qAKR9ljQo+l+1gDCV8xCQ== 0”;

SQL>PURGE RECYCLEBIN; –可以清空RECYCLEBIN;

恢复recyclebin中的对象

我们用FLASHBACK,中文名”闪回”
语句FLASHBACK TABLE [已删除TABLE名|”RECYCLEBIN中的名字”] TO BEFORE DROP;

如上例,则:
SQL>FLASHBACK TABLE TEST TO BEFORE DROP;
闪回完成。

但当你在RECYCLEBIN内有2张相同名字的表时候,只有通过”RECYCLEBIN中的名字”来闪回指定的表,用上面方法只闪回第一个被删除的同名表。

你可能感兴趣的:(oracle,数据库,回收站,OCP)