sql >> Databáze >  >> RDS >> Oracle

Jak vytisknout SYS_REFCURSOR s oknem PLSQLDeveloper?

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í:

  1. Soubor\Nový\Testovací okno
  2. 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 na isr_main_view => :IO_CURSOR . V tomto případě musíte použít proměnnou vazby.
  3. V variables window ve spodní části test 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 typ cursor .
  4. Proveďte blok stisknutím zeleného trojúhelníku.
  5. Po provedení bloku PL/SQL se podívejte do sloupce value z variables window . Stisknutím tlačítka se třemi tečkami zobrazíte obsah referenčního kurzoru IO_CURSOR .


  1. Jak získám SQL*Plus k vytváření pohledů / tabulek s prázdným řádkem uprostřed příkazu create?

  2. Seskupování, řazení a počítání v jediném dotazu

  3. mysql:připojení odmítnuto při pokusu o připojení k localhost pomocí vzdálené IP

  4. Vytvoření pole pomocí rekurzivního php z mysql