sql >> Database >  >> RDS >> Oracle

Hoe SYS_REFCURSOR afdrukken met het PLSQLDeveloper-venster?

Als u met "SQL-venster" SQL*PLUS bedoelt, dan om af te drukken (met behulp van PRINT commando) de inhoud van een cursor, moet u een bindvariabele declareren buiten het PL/SQL-blok, een waarde toewijzen aan die bindvariabele in het PL/SQL-blok door het blok uit te voeren en vervolgens de inhoud afdrukken met behulp van PRINT commando:

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;

BEWERKEN :

Om de inhoud van een cursor in PL/SQL Developer als een van de opties te zien, kunt u eenvoudig het volgende doen:

  1. Bestand\Nieuw\Testvenster
  2. Kopieer/plak je anonieme PL/SQL-blok daar. Voorafgaand hieraan verwijder IO_CURSOR SYS_REFCURSOR; variabele declaratie. Er is geen behoefte aan. Verander ook isr_main_view => IO_CURSOR naar isr_main_view => :IO_CURSOR . U moet in dit geval de bindvariabele gebruiken.
  3. In het variables window onderaan het test window specificeer de variabelenaam van uw ref-cursor waarvan u de inhoud wilt zien (IO_CURSOR zonder voorafgaande puntkomma ) en selecteer type cursor .
  4. Voer het blok uit door op de groene driehoek te drukken.
  5. Nadat het PL/SQL-blok is uitgevoerd, raadpleegt u de kolom value van het variables window . Druk op de knop met ellips erop om de inhoud van de ref-cursor IO_CURSOR te zien .


  1. Een datumbereik herhalen in PL/SQL

  2. Kolom importeren uit CSV in bestaande MySQL-tabel

  3. Postgresql enorm prestatieverschil bij gebruik van IN vs NOT IN

  4. Hoe gebruik ik de huidige datum in een HQL-query met een Oracle-database?