Если вы пишете на PL/SQL, то наверняка сталкивались с ситуацией, когда необходимо зафиксировать изменения независимо от текущей транзакции. Именно в таких случаях на сцену выходят автономные транзакции в Oracle! Давайте разберёмся, как они работают и когда их стоит использовать. Автономные транзакции (autonomous transactions, АТ) позволяют создать подтранзакцию, которая может быть зафиксирована (commit) или отменена (rollback) независимо от родительской транзакции. Другими словами, даже если основной процесс откатится, данные из автономной транзакции останутся нетронутыми. Для этого используется специальная директива компилятора PL/SQL: PRAGMA AUTONOMOUS_TRANSACTION; АТ можно применять в любом PL/SQL-блоке: 💡 Важно: автономную транзакцию обязательно нужно завершать оператором фиксации (commit) или отката (rollback). Рассмотрим простой пример, где создаётся процедура для логирования сообщений в отдельную таблицу log_table: CREATE OR REPLACE PROCEDURE log_message(p_message VARCHAR2) IS
Автономные транзакции в PL/SQL: транзакционная магия✨
5 февраля 20255 фев 2025
93
3 мин