Interaksi PL/SQL dengan Oracle

6.9.3. Mengontrol Autonomous Transactions

Perintah SQL pertama di dalam sebuah autonomous routine memulai sebuah transaksi.. Ketika satu transaksi berakhir, perintah SQL berikutnya memulai transaksi yang lain. Seluruh perintah-perintah SQL yang dieksekusi sejak commit atau rollback terakhir membentuk transaksi terkini. Untuk mengontrol autonomous transactions, kita menggunakan perintah-perintah berikut ini, yang diterapkan hanya kepada transaksi terkini (aktif):

COMMIT mengakhiri transaksi terkini dan membuat perubahan-perubahan yang terjadi selama transaksi tersebut menjadi  permanen. ROLLBACK mengakhiri transaksi terkini dan membatalkan perubahan-perubahan yang terjadi. ROLLBACK TO membatalkan suatu bagian dari transaksi. SAVEPOINT menamai dan menandai titik terkini dari dalam sebuah transaksi. SET TRANSACTION mengeset properti-properti transaksi seperti akses read/write (baca/tulis) dan level isolasi.

Catatan: Properti-properti transaksi yang diset di dalam main transaction (transaksi utama) diterapkan hanya kepada transaksi tersebut, tidak kepada autonomous transactions-nya, dan begitu pula sebaliknya.

6.9.3.1. Masuk dan Keluar

Ketika kita memasuki bagian executable dari sebuan autonomous routine, main transaction ditunda (suspend). Ketika kita keluar dari routine tersebut, main transaction dimulai kembali.

Untuk keluar secara normal, kita harus secara eksplisit melakukan commit atau rollback seluruh autonomous transactions. Jika routine tersebut (atau suatu routine yang dipanggil olehnya) memiliki transaksi-transaksi yang dihentikan sementara (pending), exception dimunculkan, dan seluruh transaksi-transaksi yang pending tersebut akan di rollback.

6.9.3.2. Melakukan Commit dan Roll Back

COMMIT dan ROLLBACK mengakhiri autonomous transaction yang sedang aktif namun tidak keluar dari autonomous routine. Seperti ditunjukkan oleh Gambar 6-4, ketika satu transaksi berakhir, perintah SQL berikutnya mengawali transaksi yang lain.

Gambar 6-4 Multiple Autonomous Transactions

6.9.3.3. Menggunakan Savepoint

Jangkauan dari savepoint adalah transaksi dimana ia didefinisikan. Savepoint-savepoint yang didefinisikan di dalam main transaction tidak terelasi dengan savepoint-savepoint yang didefinisikan di dalam autonomous transactions-nya. Pada kenyataannya, main transaction dan sebuah autonomous transaction dapat menggunakan nama-nama savepoint yang sama.

Kita dapat melakukan rollback hanya kepada savepoint-savepoint yang ditandai di dalam transaksi terkini. Sehingga, ketika di dalam sebuah autonomous transaction, kita tidak dapat melakukan rollback ke savepoint yang ditandai di dalam main transaction, Untuk melakukannya, kita harus memulai kembali main transaction tersebut dengan cara keluar dari autonomous routine.

Ketika di dalam main transaction, melakukan rollback ke savepoint yang ditandai sebelum kita memulai sebuah autonomous transaction tidak me-rollback autonomous transaction tersebut.

Perlu kita ingat, autonomous transactions independen secara penuh dari main transaction.

6.9.3.4. Menghindari Errors

Untuk menghindari error-error yang sering terjadi, perlu diperhatikan poin-poin berikut ketika mendesain autonomous transactions:

 

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

 

Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi.
Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma dsb. Harga Rp. 24.800,- (157 halaman)

 

Related Articles

 

Comments

[…] Interaksi PL/SQL dengan Oracle - 6,172 viewsFungsi Baris Tunggal - 4,245 viewsData Modelling dan Database Design - 3,954 viewsMengubah Table dan Constraint - 3,213 viewsTipe-tipe Data PL/SQL - 3,145 viewsPL/SQL Subprograms - 2,742 viewsMengontrol Akses User - 2,717 viewsCollections dan Records PL/SQL - 2,654 viewsMenampilkan Data - 2,572 viewsPendahuluan - 2,555 views […]

Leave a comment

(required)

(required)


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word