Pokud "okno SQL" myslíte SQL*PLUS, pak k tisku (pomocí PRINT
příkaz) obsah kurzoru, musíte deklarovat proměnnou vazby mimo blok PL/SQL, přiřadit hodnotu této proměnné vazby uvnitř bloku PL/SQL provedením bloku a poté obsah vytisknout pomocí PRINT
příkaz:
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;
UPRAVIT :
Chcete-li zobrazit obsah kurzoru v PL/SQL Developer, jako jednu z možností, můžete jednoduše provést následující:
- Soubor\Nový\Testovací okno
- Zkopírujte/vložte tam svůj anonymní blok PL/SQL. Před tím odeberte
IO_CURSOR SYS_REFCURSOR;
deklarace proměnné. Není to potřeba. Změňte takéisr_main_view => IO_CURSOR
naisr_main_view => :IO_CURSOR
. V tomto případě musíte použít proměnnou vazby. - V
variables window
ve spodní částitest window
zadejte název proměnné vašeho referenčního kurzoru, jehož obsah chcete vidět (IO_CURSOR
bez středníku ) a vyberte typcursor
. - Proveďte blok stisknutím zeleného trojúhelníku.
- Po provedení bloku PL/SQL se podívejte do sloupce
value
zvariables window
. Stisknutím tlačítka se třemi tečkami zobrazíte obsah referenčního kurzoruIO_CURSOR
.