Perbezaan Antara Kursor Eksplisit Dan Kursor Tersirat

Perbezaan Antara Kursor Eksplisit Dan Kursor Tersirat
Perbezaan Antara Kursor Eksplisit Dan Kursor Tersirat

Video: Perbezaan Antara Kursor Eksplisit Dan Kursor Tersirat

Video: Perbezaan Antara Kursor Eksplisit Dan Kursor Tersirat
Video: Cara Mengatur Kecepatan Kursor/Pointer Mouse/Touchpad 2024, Mungkin
Anonim

Kursor Eksplisit vs Kursor Implisit

Ketika datang ke pangkalan data, kursor adalah struktur kawalan yang memungkinkan melintasi rekod dalam pangkalan data. Kursor menyediakan mekanisme untuk menetapkan nama pada pernyataan pilih SQL dan kemudian dapat digunakan untuk memanipulasi maklumat dalam pernyataan SQL itu. Kursor tersirat dibuat secara automatik dan digunakan setiap kali pernyataan Pilih dikeluarkan dalam PL / SQL, ketika tidak ada kursor yang ditentukan secara jelas. Kursor eksplisit, seperti namanya, ditentukan secara jelas oleh pemaju. Dalam PL / SQL, kursor eksplisit sebenarnya adalah pertanyaan bernama yang ditentukan yang menggunakan kata kunci kursor.

Apakah Kursor Tersirat?

Kursor tersirat secara automatik dibuat dan digunakan oleh Oracle setiap kali pernyataan pilih dikeluarkan. Sekiranya kursor tersirat digunakan, Sistem Pengurusan Pangkalan Data (DBMS) akan melakukan operasi buka, ambil dan tutup secara automatik. Kursor tersirat harus digunakan hanya dengan pernyataan SQL yang mengembalikan satu baris. Sekiranya pernyataan SQL mengembalikan lebih dari satu baris, menggunakan kursor tersirat akan memperkenalkan ralat. Kursor tersirat secara automatik dikaitkan dengan setiap pernyataan Bahasa Manipulasi Data (DML), iaitu pernyataan INSERT, UPDATE dan DELETE. Juga, kursor tersirat digunakan untuk memproses pernyataan SELECT INTO. Semasa mengambil data menggunakan kursor tersirat, pengecualian NO_DATA_FOUND dapat dinaikkan apabila pernyataan SQL tidak mengembalikan data. Selanjutnya,kursor tersirat dapat meningkatkan pengecualian TOO_MANY_ROWS apabila penyataan SQL mengembalikan lebih dari satu baris.

Apa itu Kursor Eksplisit?

Seperti yang disebutkan sebelumnya, kursor eksplisit adalah pertanyaan yang ditentukan menggunakan nama. Kursor eksplisit dapat dianggap sebagai penunjuk ke sekumpulan rekod dan penunjuk dapat dipindahkan ke depan dalam kumpulan catatan. Kursor eksplisit memberikan pengguna kawalan penuh terhadap 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 pemboleh ubah dalam kursor dapat diubah setiap kali dijalankan. Sebagai tambahan, kursor eksplisit membolehkan anda mengambil keseluruhan baris ke pemboleh ubah rekod PL / SQL. Semasa menggunakan kursor eksplisit, pertama perlu dinyatakan menggunakan nama. Atribut kursor dapat diakses menggunakan nama yang diberikan kepada kursor. Setelah menyatakan, kursor perlu dibuka terlebih dahulu. Kemudian pengambilan boleh dimulakan. Sekiranya beberapa baris perlu diambil, operasi pengambilan perlu dilakukan dalam satu gelung. Akhirnya, kursor perlu ditutup.

Perbezaan Antara Kursor Eksplisit dan Kursor Tersirat

Perbezaan utama antara kursor tersirat dan kursor eksplisit ialah kursor tersirat perlu didefinisikan secara eksplisit dengan memberikan nama sementara kursor tersirat secara automatik dibuat semasa anda mengeluarkan pernyataan pilih. Selanjutnya, beberapa baris dapat diambil menggunakan kursor eksplisit sementara kursor tersirat hanya dapat mengambil satu baris. Juga pengecualian NO_DATA_FOUND dan TOO_MANY_ROWS tidak dibangkitkan ketika menggunakan kursor eksplisit, berbanding kursor tersirat. Pada hakikatnya, kursor tersirat lebih rentan terhadap ralat data dan memberikan kawalan program yang kurang daripada kursor eksplisit. Juga, kursor tersirat dianggap kurang cekap daripada kursor eksplisit.

Disyorkan: