Jeśli przez "Okno SQL" masz na myśli SQL*PLUS, to do wydruku (używając PRINT
polecenie) zawartość kursora, musisz zadeklarować zmienną bind poza blokiem PL/SQL, przypisać wartość tej zmiennej bind wewnątrz bloku PL/SQL, wykonując blok, a następnie wydrukować zawartość za pomocą PRINT
polecenie:
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;
EDYTUJ :
Aby zobaczyć zawartość kursora w PL/SQL Developer, jako jedną z opcji, możesz po prostu wykonać następujące czynności:
- Plik\Nowe\Okno testowe
- Skopiuj/wklej tam swój anonimowy blok PL/SQL. Przed tym usuń
IO_CURSOR SYS_REFCURSOR;
deklaracja zmiennej. Nie ma takiej potrzeby. Zmień takżeisr_main_view => IO_CURSOR
doisr_main_view => :IO_CURSOR
. W tym przypadku musisz użyć zmiennej bind. - W oknie
variables window
na doletest window
podaj nazwęzmiennej kursora odnośnika którego zawartość chcesz zobaczyć (IO_CURSOR
bez poprzedzającego średnika ) i wybierz typcursor
. - Wykonaj blok, naciskając zielony trójkąt.
- Po wykonaniu bloku PL/SQL odnieś się do kolumny
value
oknavariables window
. Naciśnij przycisk z wielokropkiem, aby zobaczyć zawartość kursora odnośnikaIO_CURSOR
.