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

Cara Membuat PL/SQL SYS_REFCURSOR Di Database Oracle

PL/SQL SYS_REFCURSOR Di Database Oracle

Seperti yang kita pelajari di pengantar kursor ref bahwa ada tiga jenis kursor ref PL/SQL di Oracle Database.

  1. Kursor ref kuat
  2. Kursor ref lemah dan
  3. SYS_REFCURSOR

Sejauh ini dalam seri ini kita telah membahas konsep kursor ref Kuat dan Lemah. Satu-satunya jenis kursor yang masih belum tersentuh adalah PL/SQL SYS_REFCURSOR di Oracle Database. Yang akan kita pelajari di blog ini.

Apa itu PL/SQL SYS_REFCURSOR?

SYS_REFCURSOR adalah kursor ref lemah yang telah ditentukan sebelumnya yang disertakan dengan perangkat lunak database Oracle.

Bagaimana jika kursor ref yang ditentukan sebelumnya membantu kita?

SYS_REFCURSOR adalah kursor ref lemah yang telah ditentukan sebelumnya yang berarti kita tidak harus mendefinisikannya ke dalam kode kita seperti yang kita lakukan dengan kursor ref lemah eksplisit di tutorial sebelumnya. Seperti yang kita pelajari dalam tutorial itu bahwa membuat kursor ref yang lemah adalah proses dua langkah. Pertama Anda harus membuat "tipe kursor ref lemah" dan kemudian Anda harus membuat "variabel kursor" menggunakan kursor ref tersebut.

Saat menggunakan SYS_REFCURSOR, Anda hanya perlu membuat variabel kursor dan tidak ada yang lain. SYS_REFCURSOR sepenuhnya meminimalkan langkah pertama di mana Anda membuat jenis kursor ref lemah.

Jadi Sys_Refcursor adalah kursor ref bawaan, di mana kita dapat menemukan definisinya?

Anda dapat mengetahui definisi PL/SQL SYS_REFCURSOR dalam skrip bernama “stdspec.sql”. Anda dapat menemukan skrip ini ke dalam direktori yang jalurnya sebagai berikut. 

%ORACLE_HOME% \RDBMS\ADMIN\stdspec.sql

Definisi SYS_REFCURSOR akan terlihat seperti ini:

Tipe Ref Cursor adalah SYS_REFCURSOR?

Seperti disebutkan di atas dalam definisi, SYS_REFCURSOR adalah Kursor Ref Lemah.

Sekarang Anda telah menghilangkan hampir semua keraguan tentang SYS_REFCURSOR. Saya hanya ingin menanyakan satu pertanyaan terakhir.

Info:Tidak ada spasi antara REF dan CURSOR. Ini adalah satu kata "RefCursor".
Salah:SYS_REF KURSOR
Benar:SYS_REFCURSOR

Mengapa seseorang mendeklarasikan kursor ref yang lemah ketika kita sudah memiliki yang telah ditentukan sebelumnya?

Itu sebenarnya pertanyaan yang sangat bagus. Jawaban atas pertanyaan ini adalah Tidak, kita tidak perlu membuat kursor ref yang lemah secara eksplisit. Oracle meminimalkan kebutuhan untuk membuat kursor ref yang lemah dengan mengirimkan SYS_REFCURSOR sebagai bagian dari paket standar sejak Oracle Database 9i meskipun opsi untuk membuatnya masih tersedia.

Ini seperti pilihan pribadi, jika seseorang ingin membuat kursor ref yang lemah maka mereka bisa. Jika tidak, maka mereka selalu memiliki SYS_REFCURSOR. Teman saya, Steven Feuerstein, membuat posting blog yang sangat bagus untuk menjawab pertanyaan ini yang dapat Anda baca di sini.

Mari kita lihat contoh yang sangat mudah yang mendemonstrasikan cara menggunakan PL/SQL SYS_REFCURSOR di Oracle Database.

Contoh:Bagaimana cara membuat PL/SQL SYS_REFCURSOR di Oracle Database?

SET SERVEROUTPUT ON;
DECLARE
    --Declare cursor variable of SYS_REFCURSOR type
    cur_var SYS_REFCURSOR;
    
    --Declare variables for holding data
    f_name  employees.first_name%TYPE;
    emp_sal employees.salary%TYPE;
BEGIN
OPEN cur_var FOR SELECT first_name, Salary FROM employees WHERE employee_id = 100;
    FETCH cur_var INTO f_name, emp_sal;
    CLOSE cur_var;
    DBMS_OUTPUT.PUT_LINE(f_name ||' '||emp_sal);
END;
/

Anda dapat menonton video tutorial di saluran YouTube untuk penjelasan rinci tentang kode di atas.

Semoga Anda menikmati membaca dan belajar sesuatu yang baru. Silakan bagikan blog ini di media sosial Anda dengan teman-teman Anda. Terima kasih dan semoga harimu menyenangkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tampilan Terwujud vs. Tabel:Apa kelebihannya?

  2. Fungsi SESSIONTIMEZONE di Oracle

  3. Hilangkan duplikat menggunakan fungsi Oracle LISTAGG

  4. Kontrol DB Mendekati Kematiannya

  5. Cara mendapatkan usia dalam tahun, bulan, dan hari menggunakan Oracle