Написание запроса, чтобы убить сеанс пользователя - PullRequest
3 голосов
/ 09 сентября 2010

Я должен написать запрос, который должен выполнить следующую задачу

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 Ответ

6 голосов
/ 09 сентября 2010

Что я обычно делаю, это:

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';

Затем я просто скопирую и вставлю результат, который хочу выполнить.1008 * Никаких фигурных скобок (как их может быть?), Но я не уверен, что это соответствует вашему правилу в одну строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...