Catégories :

Fonctions système (Contrôle du système)

SYSTEM$ABORT_TRANSACTION

Annule la transaction spécifiée, si elle est en cours d’exécution. Si la transaction a déjà été validée ou annulée, son état n’est pas modifié.

Pour plus d’informations, voir Transactions.

Syntaxe

SYSTEM$ABORT_TRANSACTION(<transaction_id>)

Arguments

id_transaction

Identifiant de la transaction à annuler. Pour obtenir les IDs de transaction, vous pouvez utiliser les commandes SHOW TRANSACTIONS ou SHOW LOCKS.

Notes sur l’utilisation

  • Cette fonction est prise en charge uniquement pour les transactions explicites / multi-instructions. Les transactions automatiques peuvent être annulées en abandonnant la tâche associée.

  • Notez que les instructions DDL, y compris « CREATE TABLE AS SELECT … » valideront implicitement une transaction ouverte. Une fois la validation implicite terminée, la transaction précédemment ouverte ne peut plus être annulée.

  • Les transactions ne peuvent être annulées que par l’utilisateur qui a démarré la transaction ou par un administrateur de compte.

Exemples

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   |
-----------------------------------------+