カテゴリ:

システム関数 (システム制御)

SYSTEM$ABORT_TRANSACTION

指定されたトランザクションが実行中の場合、中止します。トランザクションがすでにコミットまたはロールバックされている場合、トランザクションの状態は変更されません。

詳細については、 トランザクション をご参照ください。

構文

SYSTEM$ABORT_TRANSACTION(<transaction_id>)
Copy

引数

transaction_id

中止するトランザクションの識別子です。トランザクション IDsを取得するには、 SHOW TRANSACTIONS または SHOW 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