如何在 PLSQL Developer 中通过单击来终止所有会话?

How to kill all sessions by a single click in PLSQL Developer?

我正在使用 PL/SQL Developer。 现在我需要通过一次单击来终止我的 oracle 数据库中具有特定状态(例如 INACTIVE)的所有会话。目前我正在一个接一个地结束会话。 我目前的策略是

第一个转到 会话

然后点击鼠标右键select kill一行一行:

我已经尝试了 ShiftCTR 键一次 select 多行,但它们无法 select 多行。

期待答案以节省我的时间。提前致谢。

使用自定义模板单击 3 次即可关闭非活动会话。

(如果您真的需要一键式解决方案,您可能需要使用 Delphi 创建一个自定义插件。但这需要大量工作。)

一旦你创建并习惯了模板,它只需要一秒钟就可以 运行 了。首先,转到模板 window,通常位于屏幕的左下角。右键单击背景和 select "New Template..."。输入模板的名称。

现在输入这段文字。这是一个 PL/SQL 块,将终止所有不活动的会话。

begin
    for sessions_to_kill in
    (
        select 'alter system kill session '''||sid||','||serial#||',@'||inst_id||''' immediate' v_sql
        from gv$session
        where status = 'INACTIVE'
            --Can't kill your current session.
            and not (sid = sys_context('userenv', 'sid') and inst_id = sys_context('userenv', 'instance'))
    ) loop
        execute immediate sessions_to_kill.v_sql;
    end loop;
end;

要调用模板,请右键单击 SQL window、select "Insert Template" 和名称中的某处。 运行 PL/SQL 块出现在 SQL window 之后。