********************************************************************************
以下是详细验证代码,oracle 9i
********************************************************************************
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 3月 25 20:39:50 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys/system@orcl as sysdba;
已连接。
SQL> grant execute on dbms_flashback to scott;
授权成功。
SQL> connect scott/tiger@orcl
已连接。
SQL> create or replace procedure test
2 as
3 begin
4 null;
5 end;
6 /
过程已创建。
SQL> select name,type,line,text from user_source where name = 'TEST';
NAME TYPE LINE TEXT
------------------------------ ------------ ---------- --------------------------------------------------
TEST PROCEDURE 1 procedure test
TEST PROCEDURE 2 as
TEST PROCEDURE 3 begin
TEST PROCEDURE 4 null;
TEST PROCEDURE 5 end;
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
441590592
SQL> drop procedure test;
过程已丢弃。
SQL> select name,type,line,text from user_source where name = 'TEST';
未选定行
SQL> connect sys/system@orcl as sysdba;
已连接。
SQL> alter system checkpoint;
系统已更改。
SQL> connect scott/tiger@orcl
已连接。
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
441591005
SQL> exec dbms_flashback.enable_at_system_change_number(441590592);
PL/SQL 过程已成功完成。
SQL> select name,type,line,text from user_source where name = 'TEST';
NAME TYPE LINE TEXT
------------------------------ ------------ ---------- --------------------------------------------------
TEST PROCEDURE 1 procedure test
TEST PROCEDURE 2 as
TEST PROCEDURE 3 begin
TEST PROCEDURE 4 null;
TEST PROCEDURE 5 end;
SQL> exec dbms_flashback.disable;
PL/SQL 过程已成功完成。
SQL> insert into user_source select * from user_source as of scn(441590592);
insert into user_source select * from user_source as of scn(441590592)
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
SQL> connect sys/system@orcl as sysdba;
已连接。
SQL> grant insert on user_source to scott;
授权成功。
SQL> connect scott/tiger@orcl
已连接。
SQL> insert into user_source select * from user_source as of scn(441590592);
insert into user_source select * from user_source as of scn(441590592)
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
SQL> connect sys/system@orcl as sysdba;
已连接。
SQL> insert into user_source select * from user_source as of scn(441590592);
insert into user_source select * from user_source as of scn(441590592)
*
ERROR 位于第 1 行:
ORA-01732: 此视图的数据操纵操作非法