Saat membuat function, kadang ada beberapa error yang akan terjadi salah satunya error ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML, di tutorial kali ini cara akan bahas cara mengatasi error tersebut.
Saat menjalankan function ada dua error yang terjadi yang pertama error ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML dan kedua ORA-06519: active autonomous transaction detected and rolled back
Solusinya kita menambahkan script PRAGMA AUTONOMOUS_TRANSACTION;
Code berikut adalah function awal sebelum di tambah PRAGMA AUTONOMOUS_TRANSACTION;
CREATE OR REPLACE FUNCTION FUNC_DATA (DATA1 VARCHAR2, DATA2 VARCHAR2) RETURN VARCHAR2 IS BEGIN EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE; END;
Setelah di tambah menjadi
CREATE OR REPLACE FUNCTION FUNC_DATA (DATA1 VARCHAR2, DATA2 VARCHAR2) RETURN VARCHAR2 IS PRAGMA AUTONOMOUS_TRANSACTION; BEGIN EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE; END;
Jika setelah di tambah masih terjadi error dan errornya cannot perform a DDL, commit or rollback inside a query or DML, pastikan anda sudah menambahkan rollback ketika gagal dan commit ketika data berhasil di simpan ataupun di update.
Sekian tutorial kali ini, semoga bermanfaat