RSS

Pengertian Perintah COMMIT dan ROLLBACK dalam PL/SQL

Pengertian Perintah COMMIT dan ROLLBACK dalam PL/SQL



Perintah COMMIT
Perintah COMMIT mengakhiri transaksi terkini dan membuat setiap perubahan selama transaksi tersebut menjadi permanen. Sampai kita melakukan commit terhadap perubahan, pengguna-pengguna lain tidak dapat mengakses data yang telah berubah tersebut; mereka melihat data sama seperti sebelum kita melakukan perubahan.


Contoh program menggunakan perintah COMMIT  :



BEGIN
  ...
  UPDATE accts
  SET bal = my_bal - debit
  WHERE acctno = 7715;
  ...
  UPDATE accts
  SET bal = my_bal + credit
  WHERE acctno = 7720;
  COMMIT WORK;
END;

Perintah COMMIT membebaskan seluruh baris data dan penguncian-penguncian table. Ia juga menghapus savepoint-savepoint yang ditandai sejak commit atau rollback terakhir.
Keyword opsional WORK tidak memiliki efek apapun kecuali hanya untuk meningkatkan keterbacaan. Keyword END memberi isyarat akhir dari blok PL/SQL,bukan akhir dari transaksi. Seperti halnya blok dapat menjangkau banyak transaksi, transaksi dapat menjangkau banyak blok.
Perintah ROLLBACK
Perintah ROLLBACK mengakhiri transaksi dan membatalkan perubahan-perubahan yang dibuat selama transaksi. Rollback berguna untuk dua alasan. Pertama, jika kita membuat kesalahan ketika menghapus baris data dari table, rollback mengembalikan data pertama. Kedua, jika kita memulai transaksi yang tidak dapat kita selesaikan karena munculnya exception atau gagalnya perintah SQL, rollback mengijinkan kita untuk kembali ke titik awal untuk melakukan pembetulan dan mungkin mencobanya lagi.
Contoh program menggunakan perintah ROLLBACK  :
DECLARE
  emp_id INTEGER;
  ...
BEGIN
  SELECT empno, ...
  INTO emp_id, ...
  FROM new_emp WHERE ...
  ...
  INSERT INTO emp VALUES (emp_id, ...);
  INSERT INTO tax VALUES (emp_id, ...);
  INSERT INTO pay VALUES (emp_id, ...);
  ...
  EXCEPTION
    WHEN DUP_VAL_ON_INDEX THEN
      ROLLBACK;
  ...
END;
Literatur  :  http://www.hastinapura.com/

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

2 komentar:

Unknown mengatakan...

kurang lengkap,,, kalo bisa semua cara delete update nya dalam commit tran dan rollback nya harus diperjelas lagi, jadi kami bisa mendapat ilmu yg lebih lagi dari blog Anda

Unknown mengatakan...

Wow

Posting Komentar