Kursor eksplisit vs kursor implisit
Ketika datang ke database, kursor adalah struktur kontrol yang memungkinkan melintasi catatan dalam database. Kursor menyediakan mekanisme untuk menetapkan nama ke pernyataan SQL Select dan kemudian dapat digunakan untuk memanipulasi informasi dalam pernyataan SQL itu. Kursor implisit secara otomatis dibuat dan digunakan setiap kali pernyataan pilih 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 ditentukan menggunakan kursor kata kunci.
Apa itu kursor implisit?
Kursor implisit secara otomatis dibuat dan digunakan oleh Oracle setiap kali pernyataan pilih dikeluarkan. Jika kursor implisit digunakan, Sistem Manajemen Database (DBMS) akan melakukan operasi terbuka, 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 terkait dengan setiap pernyataan bahasa manipulasi data (DML), yaitu memasukkan, memperbarui dan menghapus pernyataan. Juga, kursor implisit digunakan untuk memproses SELECT menjadi pernyataan. Saat mengambil data menggunakan kursor implisit no_data_found pengecualian dapat dinaikkan ketika pernyataan SQL tidak mengembalikan data. Selanjutnya, kursor implisit dapat meningkatkan pengecualian juga ketika 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 serangkaian catatan dan pointer dapat dipindahkan ke depan dalam set catatan. Kursor eksplisit memberikan pengguna kontrol penuh atas pembukaan, penutupan dan pengambilan data. Juga, beberapa baris dapat diambil menggunakan kursor eksplisit. Kursor eksplisit juga dapat mengambil parameter seperti fungsi atau prosedur apa pun sehingga variabel di 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, pertama -tama perlu dinyatakan menggunakan nama. Atribut kursor dapat diakses menggunakan nama yang diberikan kepada kursor. Setelah menyatakan, kursor perlu dibuka terlebih dahulu. Kemudian pengambilan bisa dimulai. Jika beberapa baris perlu diambil, operasi pengambilan perlu dilakukan di dalam loop. 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 saat 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 oo_many_rows pengecualian tidak dinaikkan saat menggunakan kursor eksplisit, sebagai lawan dari kursor implisit. Intinya, kursor implisit lebih rentan terhadap kesalahan data dan memberikan kontrol yang lebih sedikit daripada kursor eksplisit. Juga, kursor implisit dianggap kurang efisien daripada kursor eksplisit.