无意中执行的一个简单的flashback table操作提示:
SQL> flashback table t to scn 340592;
flashback table t to scn 340592
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-25153: 临时表空间为空
那么到底是flashback table操作需要用到temp tbs呢还是在执行flashback table操作的其他系统操作用到temp tbs?有点疑问
[@more@]SQL> desc t
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
SQL> select * from t;
ID
----------
1
SQL> insert into t values(2);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
340589
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
340592
SQL> insert into t values(3);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter table t enable row movement;
表已更改。
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
340609
SQL> flashback table t to scn 340592;
flashback table t to scn 340592
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-25153: 临时表空间为空
SQL> flashback table t to scn 340592;
flashback table t to scn 340592
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-25153: 临时表空间为空
SQL> alter tablespace temp add tempfile size 20m;
表空间已更改。
SQL> flashback table t to scn 340592;
闪回完成。
SQL> select * from t;
ID
----------
1
2
SQL> flashback table t to scn 340609;
闪回完成。
SQL> select * from t;
ID
----------
1
2
3
SQL>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19602/viewspace-1006844/ ,如需转载,请注明出处,否则将追究法律责任。