Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apa perbedaan antara kursor eksplisit dan implisit di Oracle?

Kursor implisit adalah kursor yang dibuat "secara otomatis" untuk Anda oleh Oracle saat Anda menjalankan kueri. Ini lebih sederhana untuk dikodekan, tetapi menderita

  • inefisiensi (standar ANSI menetapkan bahwa ia harus mengambil dua kali untuk memeriksa apakah ada lebih dari satu catatan)
  • kerentanan terhadap kesalahan data (jika Anda pernah mendapatkan dua baris, itu menimbulkan pengecualian TERLALU_MANY_ROWS)

Contoh

SELECT col INTO var FROM table WHERE something;

Kursor eksplisit adalah kursor yang Anda buat sendiri. Dibutuhkan lebih banyak kode, tetapi memberikan lebih banyak kontrol - misalnya, Anda dapat membuka-ambil-tutup jika Anda hanya menginginkan rekaman pertama dan tidak peduli jika ada rekaman lain.

Contoh

DECLARE   
  CURSOR cur IS SELECT col FROM table WHERE something; 
BEGIN
  OPEN cur;
  FETCH cur INTO var;
  CLOSE cur;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghilangkan jam tidak bekerja di Oracle

  2. Bagaimana cara membuat aplikasi Java saya mengidentifikasi dirinya ke Oracle saat terhubung?

  3. Hapus semua catatan kecuali yang terbaru?

  4. JDBC ResultSet getDate kehilangan presisi

  5. Bagaimana menemukan perbedaan nilai format TIMESTAMP b/w di Oracle?