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

Mencetak Oracle Sys_refcursor di Oracle SQL Developer 1.5

Anda perlu mengulang kursor ref dan untuk setiap baris di dalamnya, cetak masing-masing bidang. Dalam versi terbaru Anda, Anda perlu mengambil kursor ke variabel skalar lokal, bukan kursor referensi lain:

set serveroutput on;
declare
  result sys_refcursor;
  lsn number; -- guessing the data type
begin
  emp.emp360_utils.GET_EMPLOYEEs(222334,result); 
  loop
    fetch result into lsn; -- and other columns if needed
    exit when result%notfound;
    dbms_output.put_line(lsn);
  end loop;
end;
/

Saya sudah menebak lsn adalah angka, jika tidak maka nyatakan itu sebagai tipe yang tepat. Jika kursor mengembalikan lebih dari satu kolom, maka Anda perlu mendeklarasikan variabel lokal untuk masing-masing kolom dan mengambil semuanya ke dalamnya, meskipun Anda hanya menampilkan salah satunya.

Jika Anda hanya ingin menampilkannya, Anda dapat menggunakan variabel bind untuk melakukannya (diperiksa di versi saat ini dan kembali ke 1.5.0):

variable result refcursor

begin
  emp.emp360_utils.GET_EMPLOYEEs(222334, :result); 
end;
/

print result

Perhatikan bahwa variable perintah adalah tidak di declare memblokir; itu adalah perintah Pengembang SQL, bukan perintah PL/SQL. Seperti print , meskipun keduanya hanya didokumentasikan dalam dokumen SQL*Plus. Dan perhatikan juga titik dua di awal :result di dalam blok, yang menunjukkan bahwa itu adalah variabel pengikat, bukan variabel PL/SQL lokal.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konfigurasi mybatis untuk menggunakan koneksi yang ada

  2. Oracle PL/SQL cara menghitung range ip untuk IPv6 cidr

  3. Apa perbedaan antara kondisi NOT dan NOT() di Oracle dan MS SQL Server?

  4. DBMS_METADATA dan paket lainnya tidak valid

  5. Pivot Oracle dengan subquery