Kursor yang jelas vs kursor tersirat
Ketika datang ke pangkalan data, kursor adalah struktur kawalan yang membolehkan melintasi rekod dalam pangkalan data. Kursor menyediakan mekanisme untuk memberikan nama kepada pernyataan pilih SQL dan kemudian dapat digunakan untuk memanipulasi maklumat dalam pernyataan SQL tersebut. Kursor tersirat dibuat secara automatik dan digunakan setiap kali pernyataan pilih dikeluarkan dalam PL/SQL, apabila tidak ada kursor yang jelas. Kursor yang jelas, seperti namanya, ditakrifkan secara jelas oleh pemaju. Dalam PL/SQL kursor yang jelas sebenarnya adalah pertanyaan bernama yang ditakrifkan menggunakan kursor kata kunci.
Apa itu kursor tersirat?
Kursor tersirat dibuat secara automatik dan digunakan oleh Oracle setiap kali pernyataan pilih dikeluarkan. Sekiranya kursor tersirat digunakan, sistem pengurusan pangkalan data (DBMS) akan melaksanakan operasi terbuka, mengambil dan menutup secara automatik. Kursor tersirat harus digunakan hanya dengan pernyataan SQL yang mengembalikan satu baris. Sekiranya pernyataan SQL mengembalikan lebih daripada satu baris, menggunakan kursor tersirat akan memperkenalkan ralat. Kursor tersirat secara automatik dikaitkan dengan setiap pernyataan bahasa manipulasi data (DML), iaitu memasukkan, mengemas kini dan memadam pernyataan. Juga, kursor tersirat digunakan untuk memproses Pilih ke dalam pernyataan. Apabila mengambil data menggunakan kursor tersirat NO_DATA_FOUND EXCURITSION boleh dibangkitkan apabila pernyataan SQL tidak mengembalikan data. Tambahan pula, kursor tersirat dapat menaikkan pengecualian juga_many_rows apabila pernyataan SQL mengembalikan lebih dari satu baris.
Apa itu kursor eksplisit?
Seperti yang dinyatakan sebelum ini, kursor eksplisit adalah pertanyaan yang ditakrifkan menggunakan nama. Kursor yang jelas boleh dianggap sebagai penunjuk kepada satu set rekod dan penunjuk boleh dipindahkan ke hadapan dalam set rekod. Kursor eksplisit memberikan pengguna kawalan lengkap ke atas pembukaan, penutup dan pengambilan data. Juga, pelbagai baris boleh diambil menggunakan kursor yang jelas. Kursor eksplisit juga boleh mengambil parameter seperti fungsi atau prosedur supaya pembolehubah dalam kursor dapat diubah setiap kali dilaksanakan. Di samping. Semasa menggunakan kursor yang jelas, pertama ia perlu diisytiharkan menggunakan nama. Atribut kursor boleh diakses menggunakan nama yang diberikan kepada kursor. Setelah menyatakan, kursor perlu dibuka terlebih dahulu. Kemudian pengambilan boleh dimulakan. Sekiranya berbilang baris perlu diambil, operasi pengambilan perlu dilakukan di dalam gelung. Akhirnya, kursor perlu ditutup.
Perbezaan antara kursor eksplisit dan kursor tersirat
Perbezaan utama antara kursor tersirat dan kursor eksplisit adalah bahawa kursor yang jelas perlu ditakrifkan secara eksplisit dengan memberikan nama semasa kursor tersirat dibuat secara automatik apabila anda mengeluarkan pernyataan pilih. Selain itu, pelbagai baris boleh diambil dengan menggunakan kursor eksplisit sementara kursor tersirat hanya boleh mengambil satu baris. Juga no_data_found dan juga pengecualian. Pada dasarnya, kursor tersirat lebih terdedah kepada kesilapan data dan memberikan kawalan programatik yang kurang daripada kursor eksplisit. Juga, kursor tersirat dianggap kurang efisien daripada kursor eksplisit.