没人回答,就想实现这样的use master declare @dbname sysname set @dbname=N'MyDB' declare hCForEach cursor global for select 'kill '+rtrim(spid) from sysprocesses where dbid=db_id(@dbname) exec sp_msforeach_worker '?'
declare @d varchar(8000) set @d= ' ' select @d=@d+ ' kill '+cast(spid as varchar)+char(13) from master.sys.sysprocesses where dbid=db_id( 'ATMS ') exec(@d)
有权限的话就直接把会话(session)杀了就可以
调用这个plsql块,也可以将这个写成储存过程调用 declare u_sid varchar2(50); u_serialnumber varchar2(50); v_killstr varchar2(100); CURSOR c1 IS select trim(s.sid),trim(s.serial#) from v$session s; begin OPEN c1; LOOP FETCH c1 INTO u_sid,u_serialnumber; EXIT WHEN c1%NOTFOUND; v_killstr := ''''||trim(u_sid)||','||trim(u_serialnumber)||''''; execute immediate 'alter system kill session '||v_killstr; END LOOP; end ;
select * from v$session;alter system kill session 'sid,serial#';
conn user5/user5pwd@test_string2;--使用不同的Oracle服务器时,需要使用不同的连接串
conn system/manager@连接串;
show user;
2.同时按下三键:del+alt+ctrl,中止sqlplus进程再运行之;
3.机器重启后再运行。
declare @dbname sysname
set @dbname=N'MyDB'
declare hCForEach cursor global for select 'kill '+rtrim(spid) from sysprocesses where dbid=db_id(@dbname)
exec sp_msforeach_worker '?'
set @d= ' ' select @d=@d+ ' kill '+cast(spid as varchar)+char(13)
from master.sys.sysprocesses
where dbid=db_id( 'ATMS ') exec(@d)
有权限的话就直接把会话(session)杀了就可以
declare
u_sid varchar2(50);
u_serialnumber varchar2(50);
v_killstr varchar2(100);
CURSOR c1 IS select trim(s.sid),trim(s.serial#)
from v$session s;
begin
OPEN c1;
LOOP
FETCH c1 INTO u_sid,u_serialnumber;
EXIT WHEN c1%NOTFOUND;
v_killstr := ''''||trim(u_sid)||','||trim(u_serialnumber)||'''';
execute immediate 'alter system kill session '||v_killstr;
END LOOP;
end ;
2、切换其他用户
3、exit or quit