Terdapat pemulangan semula dalam Oracle digunakan untuk membuat asal transaksi semasa atau urus niaga yang bermasalah Kaedah pemulangan semula boleh digunakan untuk melengkapkan pemulangan semula urus niaga tersebut ialah "KEMBALIKAN [kata kunci tersirat] [KEPADA [. SAVEPOINT] ] savepoint_name |. PAKSA 'rentetan'};".
Persekitaran pengendalian tutorial ini: sistem Windows 10, Oracle versi 12c, komputer Dell G3.
1. Konsep
Dalam Oracle, penggunaan pemulangan adalah bertentangan dengan komit, yang digunakan untuk membuat asal transaksi semasa atau Transaksi bermasalah.
1.1 Sintaks
ROLLBACK [WORK] [TO [SAVEPOINT] savepoint_name | FORCE 'string'};
Contohnya:
kerja - Pilihan. Kata kunci tersirat boleh ditulis atau tidak.
untuk savepoint savepoint_name - Pilihan. Pernyataan rollback membatalkan semua perubahan untuk sesi semasa sehingga savepoint yang ditentukan oleh savepoint_name. Jika klausa ini ditinggalkan, semua perubahan akan dibuat asal.
paksa 'rentetan - pilihan'. Digunakan untuk memaksa penarikan balik urus niaga yang mungkin rosak atau bermasalah. Menggunakan klausa ini, anda boleh menentukan id transaksi dalam petikan tunggal sebagai rentetan. Pengecam transaksi bernama dba_2pc_pengding, v$corrupt_xid_list boleh ditemui dalam paparan sistem (tiada cara untuk melancarkan semula transaksi yang bermasalah ke titik simpan.)
1.1 Penyediaan Data
DROP TABLE stu; -- if exists CREATE TABLE stu ( s_id NUMBER, s_xm VARCHAR2(30) ); ALTER TABLE stu ADD CONSTRAINTS pk_stu_id PRIMARY KEY(s_id);
2 Savepoint
Kembali ke pointsql terkini
DECLARE BEGIN INSERT INTO stu(s_id, s_xm) VALUES(1, '小游子'); SAVEPOINT ps1; INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子'); SAVEPOINT ps2; -- 若也是 ps1,则回滚至此处(最近) INSERT INTO stu(s_id, s_xm) VALUES(2, '小优子'); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK TO ps1; dbms_output.put_line(SQLCODE ||' : '||SQLERRM); dbms_output.put_line(dbms_utility.format_error_backtrace); END;
Hasil operasi:
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Adakah terdapat rollback dalam oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!