类别:

系统函数 (系统控制)

SYSTEM$ABORT_TRANSACTION

如果指定的事务正在运行,则中止该事务。如果事务已提交或已回滚,则事务的状态不会更改。

有关更多信息,请参阅 事务

语法

SYSTEM$ABORT_TRANSACTION(<transaction_id>)
Copy

实参

transaction_id

要中止的事务的标识符。要获取事务 IDs,可以使用 SHOW TRANSACTIONSSHOW LOCKS 命令。

使用说明

  • 仅显式/多语句事务支持此函数。可以通过中止关联的作业来中止自动提交事务。

  • 请注意,包括“CREATE TABLE AS SELECT ...”的 DDL 语句将隐式提交未结事务。隐式提交完成后,无法中止以前未结的事务。

  • 只能由启动事务的用户或账户管理员中止事务。

示例

SHOW LOCKS IN ACCOUNT;

--------------+--------+---------------+---------------------------------+---------+---------------------------------+--------------------------------------+
   session    | table  |  transaction  |     transaction_started_on      | status  |           acquired_on           |               query_id               |
--------------+--------+---------------+---------------------------------+---------+---------------------------------+--------------------------------------+
 103079321618 | ORDERS | 1442254688149 | Mon, 14 Sep 2015 11:18:08 -0700 | HOLDING | Mon, 14 Sep 2015 11:18:16 -0700 | 6a478582-9e8c-4603-b5bf-89b14c042e1a |
 103079325702 | ORDERS | 1442255439400 | Mon, 14 Sep 2015 11:30:39 -0700 | WAITING | [NULL]                          | 82fea8a6-a679-4de1-b6e9-7a80905831cf |
--------------+--------+---------------+---------------------------------+---------+---------------------------------+--------------------------------------+

SELECT SYSTEM$ABORT_TRANSACTION(1442254688149);

-----------------------------------------+
 SYSTEM$ABORT_TRANSACTION(1442254688149) |
-----------------------------------------+
 Aborted transaction id: 1442254688149   |
-----------------------------------------+
Copy
语言: 中文