Sql 编写查询以终止用户会话

Sql 编写查询以终止用户会话,sql,oracle10g,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'

我必须写一个查询,它应该完成以下任务

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

任何建议???

我通常做的是:

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';
然后我只是复制并粘贴我想要执行的结果


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

为什么是单行而没有大括号?听起来像是任意限制下的家庭作业。ALTER SESSION没有WHERE子句,所以您当前编写的内容永远不会工作。也许可以以某种方式与EXECUTE IMMEDIATE结合使用?