Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment imprimer SYS_REFCURSOR avec la fenêtre PLSQLDeveloper ?

Si par "SQL Window" vous voulez dire SQL*PLUS , alors pour imprimer (en utilisant PRINT commande) le contenu d'un curseur, vous devez déclarer une variable de liaison en dehors du bloc PL/SQL, attribuer une valeur à cette variable de liaison à l'intérieur du bloc PL/SQL en exécutant le bloc, puis imprimer le contenu en utilisant PRINT commande :

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;

MODIFIER :

Pour voir le contenu d'un curseur dans PL/SQL Developer, comme l'une des options, vous pouvez simplement faire ce qui suit :

  1. Fenêtre Fichier\Nouveau\Test
  2. Copiez/Collez votre bloc PL/SQL anonyme ici. Avant cela, supprimez IO_CURSOR SYS_REFCURSOR; déclaration de variables. Il n'y en a pas besoin. Modifiez également isr_main_view => IO_CURSOR vers isr_main_view => :IO_CURSOR . Vous devez utiliser une variable de liaison dans ce cas.
  3. Dans la variables window en bas de la test window spécifiez le nom de la variable de votre curseur de référence dont vous voulez voir le contenu (IO_CURSOR sans point-virgule précédent) et sélectionnez le type cursor .
  4. Exécutez le bloc en appuyant sur le triangle vert.
  5. Après l'exécution du bloc PL/SQL, reportez-vous à la colonne value de la variables window . Appuyez sur le bouton avec des points de suspension pour voir le contenu du curseur de référence IO_CURSOR .