ITPub博客

首页 > 数据库 > Oracle > [Flashback]Oracle flashback存储过程

[Flashback]Oracle flashback存储过程

原创 Oracle 作者:梓沐 时间:2016-02-15 09:28:17 0 删除 编辑

在工作中经常会出现误操作导致存储过程被替换或者被删除的情况,给工作中难免会带来不必要的麻烦,针对Oracle的存储过程,可以利用Oracle提供的强大闪回功能。

首先用sys登陆到plsql或者sqlplus中,

SQL> set pagesize 0

SQL> col text format a4000

SQL> spool d:\flashback.txt

Started spooling to d:\flashback.txt

SQL> select text from dba_source as of timestamp to_timestamp('2015-10-11 10:50:32', 'YYYY-MM-DD HH24:MI:SS') where owner='TEST' and name='PD_TEST'  order by line;

procedure PD_TEST

(

pid in number

)

is                                                                        --定义传入变量

v_name varchar2(10);                                                      --定义姓名变量

v_salary number;                                                          --定义工资变量

sqlstr  varchar2(200);                                                    --定义封装sql语句变量

begin

  sqlstr:='select name ,salary from tmp where id=:1';                     --封装sql语句

  execute immediate sqlstr  into v_name,v_salary using pid ;              --执行封装sql语句,并使用绑定变量

  dbms_output.put_line(v_name||'的收入为:'||to_char(v_salary));            --打印姓名收入

  exception

    when others then                                                

      dbms_output.put_line('找不到相应数据');                                --打印例外情况

end;

16 rows selected

SQL> spool off;

Stopped spooling to d:\flashback.txt

然后可以去d盘中找到对应的文件,打开文件修改即可,或者直接复制plsql中的输出即可


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29812844/viewspace-1988791/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
擅长PLS/QL开发,SQL调优和改写,数据库设计

注册时间:2014-08-18

  • 博文量
    161
  • 访问量
    1086189