sql >> Databasteknik >  >> RDS >> Oracle

Hur skriver jag ut SYS_REFCURSOR med PLSQLDeveloper-fönstret?

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:

  1. Fönstret Arkiv\Nytt\Test
  2. 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 även isr_main_view => IO_CURSOR till isr_main_view => :IO_CURSOR . Du måste använda bindningsvariabel i det här fallet.
  3. I variables window längst ned i test window ange variabelnamnet på din ref-markör vars innehåll du vill se (IO_CURSOR utan föregående semikolon) och välj typ cursor .
  4. Kör blocket genom att trycka på den gröna triangeln.
  5. När PL/SQL-blocket har körts, se kolumnen value i variables window . Tryck på knappen med ellips för att se innehållet i referensmarkören IO_CURSOR .


  1. Lagrad procedur för att få information om databastabeller

  2. mysql och index med mer än en kolumn

  3. Varför får jag ett java.lang.IllegalArgumentException:bindningsvärdet vid index 1 är null i det här fallet?

  4. Kontrollera begränsningen för en typ