107 votes

Imprimer la valeur d'une variable dans SQL Developer

Je voulais imprimer la valeur d'une variable particulière qui est à l'intérieur d'un bloc anonyme. J'utilise Oracle SQL Developer. J'ai essayé d'utiliser dbms_output.put_line . Mais ça ne fonctionne pas. Le code que j'utilise est indiqué ci-dessous.

 SET SERVEROUTPUT ON

DECLARE

  CTABLE USER_OBJECTS.OBJECT_NAME%TYPE;
  CCOLUMN ALL_TAB_COLS.COLUMN_NAME%TYPE;
  V_ALL_COLS VARCHAR2(500);

  CURSOR CURSOR_TABLE
    IS
    SELECT OBJECT_NAME 
    FROM USER_OBJECTS 
    WHERE OBJECT_TYPE='TABLE'
    AND OBJECT_NAME LIKE 'tb_prm_%';

  CURSOR CURSOR_COLUMNS (V_TABLE_NAME IN VARCHAR2)
    IS
    SELECT COLUMN_NAME
    FROM ALL_TAB_COLS
    WHERE TABLE_NAME = V_TABLE_NAME;

BEGIN

  OPEN CURSOR_TABLE;

  LOOP
    FETCH CURSOR_TABLE INTO CTABLE;
    EXIT WHEN CURSOR_TABLE%NOTFOUND;

    OPEN CURSOR_COLUMNS (CTABLE);

    V_ALL_COLS := NULL;

    LOOP
      FETCH CURSOR_COLUMNS INTO CCOLUMN;
      V_ALL_COLS := V_ALL_COLS || CCOLUMN;
      IF CURSOR_COLUMNS%FOUND THEN
        V_ALL_COLS := V_ALL_COLS || ', ';
      ELSE
        EXIT;
      END IF;
    END LOOP;

    DBMS_OUTPUT.PUT_LINE(V_ALL_COLS);

  END LOOP;
  CLOSE CURSOR_TABLE;

END;
 

Et je reçois la sortie uniquement en anonymous block completed .

218voto

Klas Lindbäck Points 16012

Vous devez activer dbms_output. Dans Oracle SQL Developer:

  1. Montrer le SGBD de la fenêtre de Sortie (Affichage->SGBD de Sortie).
  2. Appuyez sur le bouton "+" en haut de la Sgbd fenêtre de Sortie, puis sélectionnez une base de données ouverte de connexion dans la boîte de dialogue qui s'ouvre.

Dans SQL*Plus:

 SET SERVEROUTPUT ON

21voto

Ollie Points 8526

SQL Developer semble être la seule à la sortie de la DBMS_OUTPUT de texte lorsque vous avez explicitement tourné sur le DBMS_OUTPUT volet de la fenêtre.

Aller dans le Menu AFFICHAGE -> Dbms_output d'invoquer le volet.

Cliquez sur le signe + pour activer la sortie de votre connexion, puis exécutez le code.

EDIT: Ne pas oublier de régler la taille de la mémoire tampon en fonction de la quantité de sortie vous attend.

4voto

devosJava Points 100

Il y a une autre option :

set serveroutput on format wraped;

ou

Ouvrez le menu "affichage" et cliquez sur "sgbd de sortie". Vous devriez obtenir un sgbd fenêtre de sortie au bas de la feuille de calcul. Vous devez ensuite ajouter de la connexion (pour une raison quelconque, cela n'est pas fait automaticallly).

-1voto

Bhadra Points 8

sélectionnez Affichage-->SGBD de Sortie dans le menu et la

-1voto

user2001117 Points 1068

Aller au SGBD de la fenêtre de Sortie (Affichage->SGBD de Sortie).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X