120 votes

DBMS_OUTPUT.PUT_LINE pas D'IMPRESSION

Lors de l'exécution du code suivant, il indique simplement que la procédure est terminée et n'imprime pas l'information que je veux qu'elle soit (firstName, lastName), puis les autres valeurs de la requête Select dans un tableau ci-dessous.

 CREATE OR REPLACE PROCEDURE PRINT_ACTOR_QUOTES (id_actor char)
AS
CURSOR quote_recs IS
SELECT a.firstName,a.lastName, m.title, m.year, r.roleName ,q.quotechar from quote q, role r,   
rolequote rq, actor a, movie m
where
rq.quoteID = q.quoteID
AND
rq.roleID = r.roleID
 AND
r.actorID = a.actorID
AND
r.movieID = m.movieID
AND
 a.actorID = id_actor;
BEGIN
FOR row IN quote_recs LOOP
DBMS_OUTPUT.PUT_LINE('a.firstName' || 'a.lastName');

end loop;
END PRINT_ACTOR_QUOTES;
/ 

Lors de la configuration de la sortie du serveur sur, je reçois

a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName

plusieurs fois !

33voto

Atul Patel Points 479
  1. Assurez-vous que votre fenêtre de sortie Dbms est ouverte via l'option de vue dans la barre de menus.
  2. Cliquez sur le signe vert « + » et ajoutez le nom de votre base de données.
  3. Écrivez « DBMS_OUTPUT.ENABLE ; » dans votre procédure en tant que première ligne. J'espère que ça résoudra ton problème.

27voto

Sreenath S Points 155

Définir la requête comme ci-dessous à la première ligne

SET SERVEROUTPUT ON 

18voto

Duplicate Points 747

cette déclaration

DBMS_OUTPUT.PUT_LINE('a.firstName' || 'a.lastName') ;

permet d'imprimer la chaîne telle quelle. Supprimez les guillemets pour obtenir les valeurs à imprimer. La syntaxe correcte est donc

DBMS_OUTPUT.PUT_LINE(a.firstName || a.lastName);

9voto

CuriousDev Points 161

Pour SQL Developer

Vous devez l'exécuter manuellement

SET SERVEROUTPUT ON 

Après cela, si vous exécutez une procédure avec DBMS_OUTPUT.PUT_LINE('info') ; ou directement .

Cela imprimera la ligne

Et n'essayez pas d'ajouter ceci

 SET SERVEROUTPUT ON

à l'intérieur de la définition de la fonction et de la procédure, il ne compilera pas et ne fonctionnera pas.

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