web-dev-qa-db-fra.com

Problème rudimentaire: sortie de base de la console PL / SQL?

J'utilise SQL Developer et je souhaite afficher le contenu d'une variable sur la console à l'aide de DBMS_OUTPUT.PUT_LINE (). J'exécute le code suivant qui ajoute les chiffres de 1 à 5 inclus, mais je ne vois aucune sortie.

SET SERVEROUTPUT ON;
DECLARE 
n_counter NUMBER := 5; -- Substitute this variable
n_sum     NUMBER := 0;
BEGIN
  WHILE n_counter != 0
  LOOP
    n_sum := n_sum + n_counter;
    n_counter := n_counter -1;
  END LOOP;
  DBMS_OUTPUT.PUT_LINE(n_sum);
END;

De plus, connaissez-vous de meilleures ressources pour résoudre les problèmes que la documentation Oracle PL/SQL incroyablement dense? [similaire à Java API SE7?]

25
user1260503

Puisque vous utilisez SQL Developer, vous disposez de deux options.

Dans SQL Developer, accédez à View | DBMS Output pour vous assurer que la fenêtre de sortie du SGBD est visible. Dans la fenêtre de sortie du SGBD, choisissez l'icône "plus" et sélectionnez la connexion dont vous souhaitez écrire les données dans la fenêtre de sortie du SGBD. Exécutez ensuite le bloc PL/SQL dans la fenêtre Feuille de calcul SQL à l'aide de la flèche droite (Ctrl + Entrée dans Windows). Vous verrez la sortie apparaître dans la fenêtre de sortie du SGBD.

Alternativement, vous pouvez mettre à la fois le SQL * Plus SET SERVEROUTPUT ON et le bloc PL/SQL dans la feuille de calcul SQL et exécutez-le en tant que script (F5 sous Windows). Cela affichera la sortie juste en dessous du message "bloc anonyme terminé" dans la fenêtre de sortie de script.

Remarque: La sortie Dbms dans Oracle Sql Developer n'affiche pas null dans la fenêtre de sortie. Il se déplace vers une nouvelle ligne, mais tant qu'il ne renverra pas autre chose que null, vous ne saurez pas que tous les null précédents sont là.

46
Justin Cave