Saya ingin tahu apakah perlu untuk menulis komit setelah memasukkan / menghapus / memperbarui fungsi / prosedur?
Contoh:
create or replace function test_fun
return number is
begin
delete from a;
return 0;
end;
atau prosedur
create or replace procedure aud_clear_pro
as
begin
delete from a;
end;
apakah perlu komit setelah dihapus?
Tidak dapat memahami situasi berikut:
Jika saya memanggil fungsi / prosedur dari jendela SQL maka memerlukan komit
tapi
Jika saya menjadwalkan fungsi / prosedur menggunakan dbms_scheduler dan menjalankan pekerjaan, menghapus pernyataan secara otomatis dilakukan.
MENGAPA?
Untuk menjawab pertanyaan Anda; MENGAPA?
Anda mungkin sudah mengetahui hal ini sekarang karena pos sudah berusia 2 tahun. Tapi saya akan merespons hanya untuk catatan.
Alasan # 1 memerlukan komit dan # 2 tidak karena pengaturan database default di Oracle adalah untuk melakukan transaksi ketika sesi berakhir. Jika Anda menggunakan sqlplus dan menjalankan kode Anda secara manual, itu tidak akan langsung melakukan transaksi. Jika Anda mengeluarkan komit eksplisit ATAU Anda logout dari sqlpus, maka transaksi akan komit.
Alasan mengapa Anda mendapatkan komit otomatis pada # 2 adalah karena membuat sesi untuk menjalankan skrip Anda. Ketika selesai, secara otomatis logout, yang akan menyebabkan komit otomatis.
sumber