Oracle杂文:杀死用户session

来源:互联网 发布:辐射4捏脸载入json 编辑:程序博客网 时间:2024/06/06 00:03

一、前言

在数据库同步脚本中,需要先删除用户再导入用户,此时,如果用户存在session未断开,则会导致删除失败。所以专门写了这个函数,在删除用户之前使用,以kill掉该用户的所有session。

二、代码

代码如下,传入参数为oracle用户名
create or replace procedure kill_session(v_username varchar)as  v_sid    v$session.sid%type;  v_serial v$session.serial#%type;  CURSOR killUser is    select sid, serial#      from v$session     where UPPER(username) = UPPER(v_username);begin  if killUser%isopen = false then    open killUser;  end if;  fetch killUser    into v_sid, v_serial;  while killUser%found loop    execute immediate 'alter system kill session ''' || v_sid || ',' || v_serial || '''';    fetch killUser      into v_sid, v_serial;  end loop;  close killUser;end;
原创粉丝点击