Perbedaan Antara Kursor Eksplisit dan Kursor Implisit

Perbedaan Antara Kursor Eksplisit dan Kursor Implisit
Perbedaan Antara Kursor Eksplisit dan Kursor Implisit

Video: Perbedaan Antara Kursor Eksplisit dan Kursor Implisit

Video: Perbedaan Antara Kursor Eksplisit dan Kursor Implisit
Video: Разница между непривязанным и привязанным JailBreaks — объяснение 2024, November
Anonim

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 pilih 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 di 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 Basis Data (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 terkait 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 ketika pernyataan SQL tidak mengembalikan data. Selanjutnya, kursor implisit dapat memunculkan pengecualian TOO_MANY_ROWS ketika pernyataan SQL mengembalikan lebih dari satu baris.

Apa itu Kursor Eksplisit?

Seperti yang disebutkan sebelumnya, kursor eksplisit adalah kueri yang didefinisikan menggunakan nama. Kursor eksplisit dapat dianggap sebagai penunjuk ke satu set catatan dan penunjuk dapat dipindahkan ke depan dalam kumpulan catatan. Kursor eksplisit memberi 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 dalam kursor dapat diubah setiap kali dijalankan. Selain itu, kursor eksplisit memungkinkan Anda mengambil seluruh baris ke dalam variabel record PL/SQL. Saat menggunakan kursor eksplisit, pertama-tama perlu dideklarasikan menggunakan nama. Atribut kursor dapat diakses menggunakan nama yang diberikan pada kursor. Setelah mendeklarasikan, kursor perlu 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 utama antara kursor implisit dan kursor eksplisit adalah bahwa kursor eksplisit perlu didefinisikan secara eksplisit dengan memberikan nama sementara kursor implisit dibuat secara otomatis saat Anda mengeluarkan pernyataan pilih. Selanjutnya, beberapa baris dapat diambil menggunakan kursor eksplisit sementara kursor implisit hanya dapat mengambil satu baris. Pengecualian NO_DATA_FOUND dan TOO_MANY_ROWS juga tidak dimunculkan saat menggunakan kursor eksplisit, sebagai lawan dari 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.

Direkomendasikan: