Kursor Eksplisit vs Kursor Tersirat
Ketika datang ke database, kursor adalah 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 itu. Kursor implisit secara otomatis dibuat dan digunakan setiap kali pernyataan Select dikeluarkan dalam PL / SQL, ketika tidak ada kursor yang didefinisikan secara eksplisit. Kursor eksplisit, seperti namanya, didefinisikan secara eksplisit oleh pengembang. Dalam PL / SQL, kursor eksplisit sebenarnya adalah kueri bernama yang didefinisikan menggunakan kursor kata kunci.
Apa itu Kursor Tersirat?
Kursor implisit secara otomatis dibuat dan digunakan oleh Oracle setiap kali pernyataan pilihan 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, NO_DATA_FOUND pengecualian dapat dimunculkan ketika pernyataan SQL tidak mengembalikan data. Selain itu, kursor implisit dapat meningkatkan TOO_MANY_ROWS pengecualian ketika pernyataan SQL mengembalikan lebih dari satu baris.
Apa itu Kursor Eksplisit?
Seperti disebutkan sebelumnya, kursor eksplisit adalah kueri yang didefinisikan menggunakan nama. Kursor eksplisit dapat dianggap sebagai penunjuk ke serangkaian catatan dan penunjuk dapat dipindahkan ke depan dalam kumpulan catatan. Kursor eksplisit memberikan pengguna kendali penuh atas pembukaan, penutupan, dan pengambilan data. Selain itu, beberapa 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 dieksekusi. Selain itu, kursor eksplisit memungkinkan Anda untuk mengambil seluruh baris ke variabel catatan PL / SQL. Saat menggunakan kursor eksplisit, terlebih dahulu harus dideklarasikan menggunakan nama. Atribut kursor dapat diakses menggunakan nama yang diberikan kepada kursor. Setelah menyatakan, kursor harus dibuka terlebih dahulu. Kemudian pengambilan bisa dimulai. Jika beberapa baris perlu diambil, operasi pengambilan perlu dilakukan di dalam satu lingkaran. Akhirnya, kursor perlu ditutup.
Perbedaan Antara Kursor Eksplisit dan Kursor Implisit
Perbedaan utama antara kursor implisit dan kursor eksplisit adalah bahwa kursor eksplisit perlu didefinisikan secara eksplisit dengan memberikan nama sementara kursor implisit secara otomatis dibuat ketika Anda mengeluarkan pernyataan pilih. Selain itu, beberapa baris dapat diambil menggunakan kursor eksplisit sementara kursor implisit hanya dapat mengambil satu baris. Juga NO_DATA_FOUND dan TOO_MANY_ROWS pengecualian tidak dinaikkan saat menggunakan kursor eksplisit, sebagai lawan kursor implisit. Pada dasarnya, kursor implisit lebih rentan terhadap kesalahan data dan memberikan kontrol programatik lebih sedikit daripada kursor eksplisit. Juga, kursor implisit dianggap kurang efisien daripada kursor eksplisit.