web-dev-qa-db-fra.com

Comment exécuter une procédure stockée à partir de SQL Plus?

J'ai une procédure stockée dans Oracle et je veux la tester à partir de SQLPlus.

Si j'utilise

execute  my_stored_proc (-1,2,0.01) 

Je reçois cette erreur

PLS-00306: wrong number or types of arguments in call to my_stored_proc

Le début du proc est le suivant

create or replace PROCEDURE my_stored_proc
( a IN NUMBER, 
  b IN NUMBER, 
  c IN NUMBER, 
  z out NUMBER
) AS ....

Dois-je fournir une var pour le paramètre out, comment faire? J'ai essayé:

var z  NUMBER;

Mais obtenez cette erreur lorsque j'essaie d'exécuter le proc

execute  my_stored_proc (-1,2,0.01,z) 
PLS-00201: identifier 'Z' must be declared

De plus, lorsque j'étais en SQL-Developer, cela m'a donné l'utilisation et il montre les entrées dans l'ordre inverse, c'est-à-dire:

execute my_stored_proc(z number,c number,b number,a number);

Les fournissez-vous dans l'ordre inverse ou est-ce juste quelque chose avec SQL-Developer

Je n'ai pas écrit la procédure et je ne m'occupe pas normalement d'eux donc je pourrais manquer quelque chose d'évident.

Merci

7
cody

Vous avez deux options, un bloc PL/SQL ou des variables de liaison SQL * Plus:

var z number

execute  my_stored_proc (-1,2,0.01,:z)

print z
16
Thilo