Kalau sudah lama ngoding PL/SQL, cursor itu terasa “alami”.
Rapi, terstruktur, dan kelihatan profesional.
Masalahnya… tidak selalu perlu.
Contoh Pola yang Dulu Sering Saya Pakai
Tidak salah.
Tapi sering kali overkill.
Kasus Nyata
Di satu proses report:
-
Datanya ribuan
-
Hasilnya cuma dipindahkan ke tabel lain
Tetap pakai cursor + loop.
Hasilnya:
-
Jalan
-
Tidak error
-
Tapi lambat
Alternatif yang Lebih Sederhana
Kalau tujuannya cuma memindahkan atau memproses data massal:
Tanpa loop.
Tanpa cursor.
Lebih ramah performa.
Kapan Cursor Masih Masuk Akal?
Cursor masih penting kalau:
-
Ada logic kompleks per baris
-
Banyak IF / kondisi khusus
-
Proses per record memang beda-beda
Tapi kalau:
-
Logic sama
-
Datanya banyak
-
Bisa diselesaikan SQL
Cursor biasanya bukan pilihan terbaik.
Kesalahan yang Dulu Sering Saya Lakukan
Saya dulu sering mikir:
“Kalau pakai cursor, berarti lebih aman.”
Padahal:
-
Aman ≠ efisien
-
Rapi ≠ cepat
Setelah beberapa kali kena masalah performa,
saya mulai biasakan:
SQL dulu, cursor belakangan.
Prinsip Sederhana yang Sekarang Saya Pakai
Sebelum pakai cursor, saya selalu tanya:
-
Bisa pakai satu SQL?
-
Perlu loop?
-
Datanya besar atau kecil?
Kalau jawabannya:
-
Bisa SQL
-
Tidak perlu loop
-
Data besar
👉 cursor saya coret.
Penutup
Cursor bukan musuh.
Tapi juga bukan solusi untuk semua hal.
PL/SQL itu soal memilih alat yang pas,
bukan sekadar yang paling familiar.
Sampai catatan Rabu berikutnya 👋
