编写查询以终止用户会话

Ega*_*ian 3 sql oracle10g

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

select SID from v$session where username = 'some user'
Run Code Online (Sandbox Code Playgroud)

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

alter system kill session 'sid';
Run Code Online (Sandbox Code Playgroud)

我目前所拥有的是以下内容:

alter system kill session
    where sid = select sid from v$session where username = 'some user'
Run Code Online (Sandbox Code Playgroud)

当该用户名没有特定的sid时,此查询将失败

查询必须是没有使用花括号'{'或'}'

查询应该只是一行查询,没有多行查询.

DB是ORACLE10g

有什么建议??

Ton*_*ews 6

我通常做的是:

select 'alter system kill session '''||sid||','||serial#||''';'
from v$session
where username = 'someuser';
Run Code Online (Sandbox Code Playgroud)

这将返回如下结果:

alter system kill session '11,222';
alter system kill session '22,444';
Run Code Online (Sandbox Code Playgroud)

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

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