Appel d'une procédure stockée Oracle avec DANS et HORS des paramètres
J'ai cette procédure:
CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER)
AS BEGIN
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr;
END;
Donc, quand je lance comme ça il retourne absolument rien:
DECLARE
amount NUMBER;
BEGIN
PROC1(1000001, amount);
dbms_output.put_line(amount);
END;
BTW j'utilise DreamCoder for Oracle. Est-il un problème avec la procédure elle-même ou avec la façon dont je l'appelle? Il y a une entrée dans la table de FACTURE avec INVOICE_NR égal à 1000001.
- Si vous exécutez "commencer dbms_output.put_line('test de sortie') end;" voyez-vous la sortie? Cette procédure et de l'appel, il est tout à fait correcte.
- Je l'exécuter de cette façon, mais je ne vois pas la sortie. Est-il possible que DreamCoder ne montre pas la sortie de put_line()?
- Non j'ai essayé avec
BEGIN dbms_output.put_line('hi'); END;
et ce n'est pas rien non plus.
Vous devez vous connecter pour publier un commentaire.
Si vous configurez le serveur de sortie dans SUR mode avant tout le code, il fonctionne, sinon put_line() ne fonctionnera pas. L'essayer!
Le code est,
Et ensuite appeler la fonction comme il est:
J'ai eu le même problème.J'ai utilisé un déclencheur , et dans ce déclencheur, j'ai appelé une procédure de calcul des valeurs de 2 variables .Quand j'ai essayé d'imprimer le résultat de déclenchement corps ,rien sur l'écran, mais ensuite, j'ai résolu ce problème en faisant 2 variables locales à la fonction , de calculer, de ce dont j'ai besoin avec eux et, enfin , la copie de ces variables dans votre procédure de variables.
J'espère que ça va être utile , succes!
Allez dans le Menu Outil -> SQL de Sortie, Exécutez le code PL/SQL,
la sortie sera diffusée sur SQL panneau de Sortie.