autonomous_transaction
-
oracle'da pl/sql ile çoğu işlerini halledenlerin işine çok yarayan, alt yordamlarda*, dml işlem yönetimini sağlamakta kullanılan bir pragma.
bunu yazdığınız yordamda commit veya rollback ederseniz, o yordamı çağırana kadar yapılmış bekleyen -yani henüz commit veya rollback yapılmamış- insert, update, delete gibi dml işlemleri commit veya rollback edilmez, sadece o yordam içindekiler edilir.
kullanım örneği :
create or replace procedure log_table(pmsg varchar2) is
...pragma autonomous_transaction;
begin
...insert into tname(kolon1, [kolon2, kolon3, ... kolonn])
...values (değer1, [değer2, değer3, ... değern]);
...commit;
end;
diyelim bir tabloya bir trigger yazdınız ve tablonun kendi transaction'larına zarar gelmesini istemiyorsunuz. bu durumda trigger içerisine de bu pragma'yı yazabilirsiniz.
diğer pragmalar için
(bkz: exception_init)
(bkz: restrict_references)
(bkz: serially_reusable)
ekşi sözlük kullanıcılarıyla mesajlaşmak ve yazdıkları entry'leri
takip etmek için giriş yapmalısın.
hesabın var mı? giriş yap