Lors de l'exécution du code suivant, il indique simplement que la procédure est terminée et n'imprime pas les informations que je veux (firstName, lastName), puis les autres valeurs de la requête de sélection 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 serveur, j'obtiens
a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName
a.firstNamea.lastName
plusieurs fois!
la source
set serveroutput on
commande avant d'exécuter la procédure dans SQL * Plus.SELECT
instruction est incorrecte et qu'il manque probablement une condition de jointure. Vous voudrez affiner votre requête (que vous pouvez exécuter séparément sans la procédure) jusqu'à ce que la requête renvoie les données attendues.la source
Cette déclaration
signifie imprimer la chaîne telle quelle .. supprimer les guillemets pour obtenir les valeurs à imprimer. La syntaxe correcte est donc
la source
Définir la requête comme ci-dessous à la première ligne
la source
J'utilise Oracle SQL Developer,
Dans cet outil, je devais activer la sortie du SGBD pour afficher les résultats imprimés par dbms_output.put_line
Vous pouvez trouver cette option dans le volet des résultats où d'autres résultats de requête sont affichés. donc, dans le volet des résultats, j'ai 7 onglets. Le premier onglet nommé Résultats, le suivant est Sortie de script et ainsi de suite. Hors de cela, vous pouvez trouver un onglet nommé "Sortie SGBD" sélectionnez cet onglet, puis la 1ère icône (ressemble à une icône de dialogue) est Activer la sortie SGBD . Cliquez sur cette icône. Ensuite, vous exécutez le PL / SQL, puis sélectionnez "onglet Sortie SGBD, vous devriez pouvoir voir les résultats là-bas.
la source
Tous se concentrent sur la boucle for, mais si nous utilisons une boucle normale, nous devions utiliser la variable d'enregistrement du curseur. Ce qui suit est le code modifié
la source