[Flashback]Oracle flashback儲存過程

梓沐發表於2016-02-15

在工作中經常會出現誤操作導致儲存過程被替換或者被刪除的情況,給工作中難免會帶來不必要的麻煩,針對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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章