J'essaie d'exécuter une procédure stockée avec plusieurs paramètres d'entrée et de sortie. La procédure peut uniquement être affichée dans le panneau Connexions en naviguant sur Autres utilisateurs | | Forfaits | | Si je clique avec le bouton droit de la souris, les éléments de menu sont "Ordre des membres par ..." et "Créer un test unitaire" (grisé). La possibilité de "lancer" la procédure ne semble pas possible lorsque l'utilisateur y accède.Exécuter une procédure stockée dans SQL Developer?
J'ai essayé de trouver un exemple de la façon de créer un bloc anonyme afin que je puisse exécuter la procédure en tant que fichier SQL, mais je n'ai rien trouvé qui fonctionne.
Est-ce que quelqu'un sait comment je peux exécuter cette procédure à partir de SQL Developer? J'utilise la version 2.1.1.64.
Merci d'avance!
EDIT 1:
La procédure que je veux appeler a cette signature:
user.package.procedure(
p_1 IN NUMBER,
p_2 IN NUMBER,
p_3 OUT VARCHAR2,
p_4 OUT VARCHAR2,
p_5 OUT VARCHAR2,
p_6 OUT NUMBER)
Si j'écris mon bloc anonyme comme ceci:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, :out1, :out2, :out3, :out4);
END;
Je reçois l'erreur :
Bind Varialbe "out1" is NOT DECLCARED
anonymous block completed
J'ai essayé d'initialiser la série * variables:
out1 VARCHAR2(100) := '';
mais obtenir la même erreur:
EDIT 2:
Sur la base de la réponse d'Alex, j'ai essayé de retirer les colons de en face des paramètres et obtenir ceci:
Error starting at line 1 in command:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, out1, out2, out3, out4);
END;
Error report:
ORA-06550: line 13, column 17:
PLS-00103: Encountered the symbol "USER" when expecting one of the following:
:= . (@ % ; immediate
The symbol ":=" was substituted for "USER" to continue.
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
duplication possible de [Meilleure façon/outil pour obtenir les résultats d'une procédure de package oracle] (http://stackoverflow.com/questions/3526798/best-way-tool-to-get-the-results-from- an-oracle-package-procedure) –
Essayez de placer les variables OUT dans le BEGIN, avant l'instruction d'exécution de la procédure. –
Vous n'avez pas besoin de 'execute'; dans PL/SQL qui est interprété comme le début de 'execute immediate', qui est différent de SQL' execute'. –