gpt4 book ai didi

oracle - 如何终止仅处于非事件状态的 Oracle 数据库 session ?

转载 作者:搜寻专家 更新时间:2023-10-30 22:25:16 25 4
gpt4 key购买 nike

我需要终止(杀死)Oracle Db v$sessionstatus 不活动的所有 session
要列出事件和非事件 session ,我使用了以下语句:

SELECT sid, serial#, status FROM v$session;

我需要一个声明来终止状态为 != Active 的 session

最佳答案

您可以使用以下 block

declare
v_command varchar2(500);
begin
for c in (
select sid, serial#, machine, module, username, client_info, status, inst_id
from gv$session v
where v.status != 'ACTIVE'
--and v.inst_id = '&i_inst_id'
order by username
)
loop
begin
v_command := 'alter system kill session ''' || c.sid || ',' ||c.serial# ||
',@'||to_char(c.inst_id)||''' immediate';
execute immediate v_command;
exception when others then dbms_output.put_line(sqlerrm);
end;
end loop;
end;

其中 v$session 替换为 gv$session 动态性能 View ,INST_ID 列排序与实例编号参数对于有 RAC DB 的情况。也就是说,即使您有单实例数据库,也可能会使用上面的代码。

关于oracle - 如何终止仅处于非事件状态的 Oracle 数据库 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53309259/

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