Om du med "SQL Window" menar SQL*PLUS, då att skriva ut (med PRINT
kommando) innehållet i en markör, måste du deklarera en bindningsvariabel utanför PL/SQL-blocket, tilldela ett värde till den bindningsvariabeln inuti PL/SQL-blocket genom att köra blocket och sedan skriva ut innehållet med PRINT
kommando:
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;
REDIGERA :
För att se innehållet i en markör i PL/SQL Developer, som ett av alternativen, kan du helt enkelt göra följande:
- Fönstret Arkiv\Nytt\Test
- Kopiera/klistra in ditt anonyma PL/SQL-block där. Ta bort
IO_CURSOR SYS_REFCURSOR;
innan detta variabel deklaration. Det finns inget behov av det. Ändra ävenisr_main_view => IO_CURSOR
tillisr_main_view => :IO_CURSOR
. Du måste använda bindningsvariabel i det här fallet. - I
variables window
längst ned itest window
ange variabelnamnet på din ref-markör vars innehåll du vill se (IO_CURSOR
utan föregående semikolon) och välj typcursor
. - Kör blocket genom att trycka på den gröna triangeln.
- När PL/SQL-blocket har körts, se kolumnen
value
ivariables window
. Tryck på knappen med ellips för att se innehållet i referensmarkörenIO_CURSOR
.