gpt4 book ai didi

sql - 使用PL/SQL或SQL中的循环杀死oracle session

转载 作者:行者123 更新时间:2023-12-02 08:48:54 26 4
gpt4 key购买 nike

我们有这个查询:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

我需要杀死所有具有相同SQL ID的 session

我不确定如何将事物连接在一起,但是到目前为止我有:
for rec in (SELECT se.sid,ss.serial# 
FROM v$session ss, v$sesstat se, v$statname sn
WHERE se.statistic# = sn.statistic#
AND name like '%CPU used by this session%'
AND se.sid = ss.sid
AND ss.status = 'ACTIVE'
AND ss.username is not null
AND ss.sql_id ='f7frew3erwe'
ORDER BY value ASC) loop
ALTER SYSTEM KILL SESSION 'rec.sid,rec.serial#' IMMEDIATE; //this is the tricky part!
end loop;

有什么建议么?

最佳答案

这个问题类似于How can I kill all sessions connecting to my oracle database?,尽管不是所有的 session 。

您需要使用 execute immediate 才能在PL / SQL块中更改系统:

execute immediate 'Alter System Kill Session '''|| rec.Sid  
|| ',' || rec.Serial# || ''' IMMEDIATE';

我查询您是否需要使用所有其他系统表。如果您想杀死的只是一个特定的 SQL_ID,则类似于以下查询的内容就足够了:
SELECT se.sid,ss.serial# 
FROM v$session
WHERE status = 'ACTIVE'
AND username is not null
AND sql_id ='f7frew3erwe'

关于sql - 使用PL/SQL或SQL中的循环杀死oracle session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10087686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com