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

PL/SQL:ubah kursor eksplisit menjadi kursor ref?

Seperti disebutkan dalam komentar saya, membuka sys_refcursor untuk kursor lain tidak diperbolehkan hingga Oracle 11g. Saat Anda mencoba melakukan sesuatu yang menuntut penggunaan sys_refcursor, caranya bisa seperti di bawah ini:

Buat jenis

CREATE TYPE va IS TABLE OF NUMBER;
/

Blokir:

DECLARE
   CURSOR c
   IS
      SELECT employee_id FROM employee;

   rc    SYS_REFCURSOR;
   var   va;
BEGIN
   OPEN c;

   FETCH c BULK COLLECT INTO var;

   CLOSE c;

   OPEN rc FOR SELECT COLUMN_VALUE FROM TABLE (var);
END;
/

Anda akan melihat di sini bahwa pada akhirnya saya menggunakan lagi SELECT pernyataan untuk ref_cursor . Kayaknya kalo gak mau pake cara biasa, gue pake cara alternatif.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus baris duplikat di Oracle SQL, biarkan entri terbaru

  2. Temukan seluruh pohon dari akar yang memberikan simpul apa pun

  3. <SQL>Cara mengubah ukuran VARCHAR2 tabel

  4. Bagaimana cara menyimpan array byte di Oracle?

  5. Menggunakan string dalam prosedur tersimpan Oracle