Se per "Finestra SQL" intendi SQL*PLUS , quindi per stampare (usando PRINT
comando) il contenuto di un cursore, è necessario dichiarare una variabile bind al di fuori del blocco PL/SQL, assegnare un valore a quella variabile bind all'interno del blocco PL/SQL eseguendo il blocco e quindi stampare il contenuto utilizzando PRINT
comando:
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;
MODIFICA :
Per vedere il contenuto di un cursore in PL/SQL Developer, come una delle opzioni, puoi semplicemente fare quanto segue:
- Finestra\Nuovo\Test
- Copia/incolla lì il tuo blocco PL/SQL anonimo. Prima di questo rimuovere
IO_CURSOR SYS_REFCURSOR;
dichiarazione di variabile. Non ce n'è bisogno. Cambia ancheisr_main_view => IO_CURSOR
aisr_main_view => :IO_CURSOR
. Devi usare la variabile bind in questo caso. - Nella
variables window
nella parte inferiore dellatest window
specifica il nome della variabile del tuo cursore di riferimento il cui contenuto vuoi vedere (IO_CURSOR
senza punto e virgola ) e seleziona il tipocursor
. - Esegui il blocco premendo il triangolo verde.
- Dopo l'esecuzione del blocco PL/SQL, fare riferimento alla colonna
value
dellavariables window
. Premi il pulsante con i puntini di sospensione per vedere il contenuto del cursore di riferimentoIO_CURSOR
.