Jika dengan "SQL Window" yang Anda maksud adalah SQL*PLUS , maka untuk mencetak (menggunakan PRINT
perintah) isi kursor, Anda perlu mendeklarasikan variabel bind di luar blok PL/SQL, menetapkan nilai ke variabel bind di dalam blok PL/SQL dengan mengeksekusi blok dan kemudian mencetak konten dengan menggunakan PRINT
perintah:
SQL> variable IO_CURSOR refcursor;
SQL> DECLARE
2 SOME_VAR_1 VARCHAR2(20);
3 SOME_VAR_2 VARCHAR2(20);
4 SOME_VAR_3 DECIMAL;
5 --IO_CURSOR SYS_REFCURSOR;
6 BEGIN
7 SOME_VAR_1 := 'test1';
8 SOME_VAR_2 := 'test2';
9 SOME_VAR_3 := 1;
10 --IO_CURSOR := NULL; -- no need to do that
11 Get_Analysis_Data(p_in_symbol_type => SOME_VAR_1,
12 p_in_symbol => SOME_VAR_2,
13 p_in_isr_id => SOME_VAR_3,
14 isr_main_view => :IO_CURSOR);
15 END;
16 /
SQL> print io_cursor;
EDIT :
Untuk melihat isi kursor di PL/SQL Developer, sebagai salah satu opsi, Anda cukup melakukan hal berikut:
- Jendela File\New\Test
- Salin/Tempel blok PL/SQL anonim Anda di sana. Sebelum ini hapus
IO_CURSOR SYS_REFCURSOR;
deklarasi variabel. Tidak perlu itu. Ubah jugaisr_main_view => IO_CURSOR
keisr_main_view => :IO_CURSOR
. Anda perlu menggunakan variabel bind dalam kasus ini. - Di
variables window
di bagian bawahtest window
tentukan nama variabel kursor ref Anda yang isinya ingin Anda lihat (IO_CURSOR
tanpa titik koma sebelumnya ) dan pilih ketikcursor
. - Jalankan blok dengan menekan segitiga hijau.
- Setelah blok PL/SQL dijalankan lihat kolom
value
darivariables window
. Tekan tombol dengan elipsis di atasnya untuk melihat isi kursor refIO_CURSOR
.