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




