您的位置:首页 > 数据库 > Oracle

[Flashback]Oracle flashback存储过程

2015-10-12 11:23 555 查看
在工作中经常会出现误操作导致存储过程被替换或者被删除的情况,给工作中难免会带来不必要的麻烦,针对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中的输出即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: