FLASHBACK TABLE table_name TO BEFORE DROP引发的猜想
发布时间:2020-12-15 17:58:04 所属栏目:百科 来源:网络整理
导读:ORACLE 10G 新增了 FLASHBACK 特性,其中 FLASHBACK TABLE 用来对误删的表进行修复。 SQL ?CONNECT?SYSDBA / *****? AS ?SYSDBA 已连接。 SQL ? CREATE TABLE ?TEST?(T? VARCHAR2 ( 10 )?)?; 表已创建。 SQL DROP ?TEST; 表已删除。 SQL ?FLASHBACK? ?TEST?
ORACLE 10G新增了FLASHBACK特性,其中FLASHBACK TABLE用来对误删的表进行修复。
SQL>?CONNECT?SYSDBA/*****?AS?SYSDBA
已连接。 SQL?CREATETABLE?TEST?(T?VARCHAR2(10)?)?; 表已创建。 SQLDROP?TEST; 表已删除。 SQL?FLASHBACK??TEST?TO?BEFORE?; FLASHBACK? * 第?1?行出现错误: ORA-38305:?对象不在回收站中?? 出现ORA-38305错误,起初我以为是回收站机制参数OFF引起的,Oracle10g起,引入了回收站的机制,将drop掉的数据表保存在回收站中。当发现误删除的时候,可以通过回收站回收数据表。回收站机制类似于我们在Windows系统上的回收站。在Windows中,当我们选择删除一个文件时,本质上并没有将文件从硬盘上删除,只是将文件以一种形式改名,这样就能从回收站中看到。于是我查看了RECYCLEBIN参数 奇怪的是回收站参数是开启的,SQL> SHOW RECYCLEBIN;?也看不到删除的表。这到底是咋回事呢?折腾了很久。后来修改了创建表的表空间,竟然一切都OK ?TEST(T?))?TABLESPACE?USERS;
表已创建。 SQL?SHOW?RECYCLEBIN; ORIGINAL?NAME????RECYCLEBIN?NAME????????????????OBJECT?TYPE???TIME ----------------?------------------------------?------------?------------------- TEST?????????????BIN$gVtRcd2NTqihW6yM4vs0Hw==$0????????2011-0724:124042 SQL; 闪回完成。 SQLSELECT?FROM?TEST; 未选定行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |