自定义过程ORACLE KILL SESSION

我觉得这个可以是一个小工具,所有我授权给了所有人(不过这也很危险)。

1:用SYS建立此PROC,
源码:

create or replace procedure kill_session(p_username varchar2,
p_sid number,
p_serial number) is
--Session exists flg
v_exist number := 0;
begin

--Query the session by identifier
select count(*)
into v_exist
from v$session s
where s.username = upper(p_username)
and s.sid = p_sid
and s.serial# = p_serial
and rownum =1;

--Ensure the session is already exists
if v_exist > 0 then
--Try to kill it
execute immediate 'alter system kill session ''' || p_sid || ',' ||
p_serial || '''';
else
--Echo error msg
dbms_output.put_line('No such session,username=' || p_username ||
',sid=' || p_sid || ',serial#=' || p_serial);
end if;
end kill_session;



2:授权给所有
GRANT EXECUTE ON KILL_SESSION TO PUBLIC;

3:用SCOOT登录后执行
  begin
SYS.kill_session('SCOTT', 155, 28);
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值