Oracle 对应于 `pg_cancel_backend`

483*_*347 2 oracle

将 Oracle 语句ALTER SYSTEM KILL SESSION ...视为...在某种程度上可与 PostgreSQL 语句相媲美SELECT pg_terminate_backend()

您知道ALTER SYSTEM KILL SESSIONPostgreSQL的任何 Oracle 类比(比 更好)SELECT pg_cancel_backend()吗?


参考:9.26。系统管理功能(PostgreSQL 文档)

pg_terminate_backend

终止一个后端。您可以针对与调用该函数的用户具有完全相同角色的另一个后端执行此操作。在所有其他情况下,您必须是超级用户。

pg_cancel_backend

取消后端的当前查询。您可以针对与调用该函数的用户具有完全相同角色的另一个后端执行此操作。在所有其他情况下,您必须是超级用户。

Bal*_*app 6

18c 以下的版本:

DBMS_RESOURCE_MANAGER

SWITCH_CONSUMER_GROUP_FOR_SESS 过程

exec DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_SESS (sid, serial, 'CANCEL_SQL');
Run Code Online (Sandbox Code Playgroud)

如果组名是'CANCEL_SQL',则当满足其他切换条件时将取消当前调用。

从 18c 开始:

改变系统

cancel_sql_clause

使用此子句可终止消耗过多资源(包括并行服务器)的 SQL 操作。您必须提供会话 ID 和会话序列号以标识要取消的 SQL 语句。如果您不提供这些必需的参数,SQL 语句将不会运行。

session_id 是必需的,代表会话标​​识符。

serial_number 是必需的,代表会话的序列号。

@instance_id 是可选的。如果省略此参数,则使用当前会话的实例 ID。

sql_id 是可选的。如果省略此参数,则终止当前在指定会话中运行的 SQL 语句。

例子:

ALTER SYSTEM CANCEL SQL 'SID, SERIAL, @INST_ID, SQL_ID';
Run Code Online (Sandbox Code Playgroud)