Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie drucke ich SYS_REFCURSOR mit dem PLSQLDeveloper-Fenster?

Wenn Sie mit "SQL-Fenster" SQL*PLUS meinen, dann zum Drucken (mit PRINT Befehl) den Inhalt eines Cursors, müssen Sie eine Bind-Variable außerhalb des PL/SQL-Blocks deklarieren, dieser Bind-Variable innerhalb des PL/SQL-Blocks einen Wert zuweisen, indem Sie den Block ausführen, und dann den Inhalt mit PRINT Befehl:

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;

BEARBEITEN :

Um den Inhalt eines Cursors in PL/SQL Developer als eine der Optionen anzuzeigen, können Sie einfach Folgendes tun:

  1. Datei\Neu\Testfenster
  2. Kopieren/fügen Sie Ihren anonymen PL/SQL-Block dort ein. Entfernen Sie vorher IO_CURSOR SYS_REFCURSOR; variable Aussage. Es besteht keine Notwendigkeit. Ändern Sie auch isr_main_view => IO_CURSOR zu isr_main_view => :IO_CURSOR . In diesem Fall müssen Sie die Bind-Variable verwenden.
  3. Im variables window unten im test window Geben Sie den Variablennamen Ihres Ref-Cursors an, dessen Inhalt Sie sehen möchten (IO_CURSOR ohne vorangestelltes Semikolon ) und wählen Sie den Typ cursor .
  4. Führen Sie den Block aus, indem Sie auf das grüne Dreieck drücken.
  5. Nachdem der PL/SQL-Block ausgeführt wurde, beziehen Sie sich auf die Spalte value des variables window . Drücken Sie die Schaltfläche mit den Auslassungspunkten darauf, um den Inhalt des Ref-Cursors IO_CURSOR anzuzeigen .