카테고리:

시스템 함수 (시스템 제어)

SYSTEM$ABORT_TRANSACTION

지정된 트랜잭션이 실행 중인 경우 이를 중단합니다. 트랜잭션이 이미 커밋되거나 롤백된 경우, 트랜잭션 상태는 변경되지 않습니다.

자세한 내용은 트랜잭션 섹션을 참조하십시오.

구문

SYSTEM$ABORT_TRANSACTION(<transaction_id>)
Copy

인자

transaction_id

중단할 트랜잭션의 식별자입니다. 트랜잭션 ID를 얻으려면 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