Set transaction read-only komutu

Set transaction komutunu read-only transaction başlatmak için kullanabiliriz. Başka bir kullanıcı sizin o an eriştiğiniz tabloda bir update yaparken sizin transactionunuz bundan etkilenmeden işleyişine, verinin önceki (sizin transactionunuzun başladığı andaki hali) halini kullarak, devam edecektir. 

Bu şekilde bir transaction kullanmak istediğinizde set transaction read-only komutu ilk sql statement'iniz olmalıdır ve başlattığınız transaction ilk commit/rollback komutuyla son bulacaktır.

Declare

..

Begin

commit; –önceki transaction'u bitiriyoruz.

Set Transation Read-Only; — Read-only transaction'umuz başlıyor.

.

(select…)

.

commit;– Read-only transaction'umuz burada son buluyor.

End;

Read-Only; Transaction-level read consistency'yi sağlar. Set transaction read only komutu ile başlattığınız transaction içerisinde yapacağınız işlemler hep aynı database snapshot'ı üzerinde olacağı için diğer kullanıcıların query/update işlemlerinden etkilenmezsiniz. 

Read only transaction içerisinde kullanabileceğiniz komutlar ise sınırlıdır. Kullanabileceğiniz komutlar; Select into, open, fetch, close, lock table, commit komutlarıdır.

Bu komut SYS kullanıcısı için işlevsizdir, SYS kullanıcısı transaction'u read-only başlatsa bile diğer kullanıcıların değişikliklerinden etkilenecektir.

Autonomous Transaction
JDeveloper başlangıç hatası / startup error

Leave a Reply