Gaya Hidup

Kursor Eksplisit dan Kursor Implisit apakah mereka sama?

Pengantar Kursor Eksplisit dan Kursor Implisit

Ketika datang ke database, kursor merupakan struktur kontrol yang memungkinkan melintasi catatan dalam database.

Kursor menyediakan mekanisme untuk menetapkan nama ke pernyataan pemilihan SQL dan kemudian dapat digunakan untuk memanipulasi informasi di dalam pernyataan SQL tersebut.

Kursor implisit secara otomatis dibuat dan digunakan setiap kali pernyataan Pilih dikeluarkan di PL/SQL, ketika tidak ada kursor yang ditentukan secara eksplisit.

Kursor eksplisit, seperti namanya, didefinisikan secara eksplisit oleh pengembang.

Dalam PL/SQL, kursor eksplisit sebenarnya adalah kueri bernama yang ditentukan menggunakan kursor kata kunci.

Apa itu Kursor Implisit?

Kursor implisit dibuat dan digunakan secara otomatis oleh Oracle setiap kali pernyataan pemilihan dikeluarkan.

Jika kursor implisit digunakan, Database Management System (DBMS) akan melakukan operasi buka, ambil, dan tutup secara otomatis.

Kursor implisit harus digunakan hanya dengan pernyataan SQL yang mengembalikan satu baris.

Jika pernyataan SQL mengembalikan lebih dari satu baris, menggunakan kursor implisit akan menimbulkan kesalahan.

Kursor implisit secara otomatis dikaitkan dengan setiap pernyataan Bahasa Manipulasi Data (DML), yaitu pernyataan INSERT, UPDATE, dan DELETE.

Juga, kursor implisit digunakan untuk memproses pernyataan SELECT INTO.

Saat mengambil data menggunakan kursor implisit pengecualian NO_DATA_FOUND dapat dimunculkan saat pernyataan SQL tidak mengembalikan data.

Selain itu, kursor implisit dapat memunculkan pengecualian TOO_MANY_ROWS saat pernyataan SQL mengembalikan lebih dari satu baris.

Apa itu Kursor Eksplisit?

Seperti disebutkan sebelumnya, kursor eksplisit adalah kueri yang ditentukan menggunakan nama.

Kursor eksplisit dapat dianggap sebagai penunjuk ke kumpulan catatan dan penunjuk dapat dipindahkan ke depan dalam kumpulan catatan.

Kursor eksplisit memberi pengguna kontrol penuh atas pembukaan, penutupan, dan pengambilan data.

Selain itu, banyak baris dapat diambil menggunakan kursor eksplisit.

Kursor eksplisit juga dapat mengambil parameter seperti fungsi atau prosedur apa pun sehingga variabel dalam kursor dapat diubah setiap kali dijalankan.

Selain itu, kursor eksplisit memungkinkan Anda mengambil seluruh baris ke dalam variabel rekaman PL/SQL.

Saat menggunakan kursor eksplisit, pertama-tama perlu dideklarasikan menggunakan nama.

Atribut kursor dapat diakses menggunakan nama yang diberikan ke kursor.

Setelah mendeklarasikan, kursor harus dibuka terlebih dahulu.

Kemudian pengambilan dapat dimulai.

Jika beberapa baris perlu diambil, operasi pengambilan harus dilakukan di dalam satu lingkaran.

Terakhir, kursor harus ditutup.

Perbedaan Antara Kursor Eksplisit dan Kursor Implisit

Perbedaan yang jelas dari mereka, kursor implisit dan kursor eksplisit adalah kursor eksplisit perlu didefinisikan secara eksplisit dengan memberikan nama sementara kursor implisit dibuat secara otomatis saat Anda mengeluarkan pernyataan pilih.

Selain itu, banyak baris dapat diambil menggunakan kursor eksplisit sementara kursor implisit hanya dapat diambil satu baris.

Pengecualian NO_DATA_FOUND dan TOO_MANY_ROWS juga tidak dimunculkan saat menggunakan kursor eksplisit, berlawanan dengan kursor implisit.

Intinya, kursor implisit lebih rentan terhadap kesalahan data dan memberikan kontrol program yang lebih sedikit daripada kursor eksplisit.

Juga, kursor implisit dianggap kurang efisien daripada kursor eksplisit.