编写查询以终止用户会话

时间:2010-09-09 16:11:22

标签: sql oracle10g

我必须编写一个应该执行以下任务的查询

select SID from v$session where username = 'some user'

如果该特定用户名有任何SID,则使用以下命令终止该SID:

alter system kill session 'sid';

我目前的情况如下:

alter system kill session
    where sid = select sid from v$session where username = 'some user'

当该用户名

没有特定的sid时,此查询失败

查询必须不会使用大括号'{'或'}'

查询应该只是单行查询,没有多行查询。

数据库是ORACLE10g

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

我通常做的是:

select 'alter system kill session '''||sid||','||serial#||''';'
from v$session
where username = 'someuser';

这将返回如下结果:

alter system kill session '11,222';
alter system kill session '22,444';

然后我只是复制并粘贴我想要执行的结果。

没有花括号(怎么会有?),但我不确定它是否符合你的单行规则。