在PL/SQL中存在v$,alter sytem之類的命令。

wei-xh發表於2010-09-09

create or replace procedure kill_lock_all is
 sqlstat varchar2(500);
begin
 for cur in (select a2.MACHINE,
       a3.os_user_name,
       a2.PROGRAM,
       a2.SCHEMANAME,
       a1.START_TIME,
       a4.object_name,
       a2.sid,a2.SERIAL#
  from v$transaction a1, v$session a2, v$locked_object a3, USER_objects a4
 where a1.ADDR = a2.TADDR
   and a3.SESSION_ID = a2.SID
   and a3.OBJECT_ID = a4.object_id
   and a2.TYPE = 'USER') loop
   begin
   sqlstat :='alter system kill session '||''''||cur.sid||','||cur.serial#||'''';
   execute immediate sqlstat;
/*   exception
   when others then
   null;*/
   end;
  end loop ;
end ;

 

授予使用者v_$的許可權。

授予使用者alter system的許可權。

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

相關文章