批量kill殺死某些會話session的plsql

wisdomone1發表於2010-06-29
SQL> r
  1  declare
  2  v_sid v$session.sid%type; #定義如下兩個type型別,用於接收cursor
  3  v_serial# v$session.serial#%type;
  4  cursor cur_session is select sid,serial# from v$session where username='SCOTT';#定義cursor
  5  begin
  6  open  cur_session;#開啟cusor
  7  loop  #開啟遊標馬上開始迴圈,因為cursor是一條條取資料的
  8  fetch cur_session into v_sid,v_serial#;#把遊標的資料放入上面定義的type變數中
 
 
#根據以上的type變數及遊標生成批量殺session的動態sql指令碼,並執行
   9  execute immediate 'alter system kill session '''||v_sid||','||v_serial#||'''';
 10   exit when cur_session%notfound;#要加個異常處理,不然永遠是死迴圈
 11   dbms_output.put_line('cursor date have been fetched ending');
 12  end loop;#loop也有成雙匹配出現
 13  close cur_session;#遊標處理完後,關閉遊標
 14* end;
PL/SQL procedure successfully completed.
SQL> /
 
 
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-666622/,如需轉載,請註明出處,否則將追究法律責任。

相關文章