2010-01-22 17 views
7

Ho una procedura memorizzata in oracle e voglio testarla da SQLPlus.Come eseguire la stored procedure da SQL Plus?

Se uso

execute my_stored_proc (-1,2,0.01) 

ottengo questo errore

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

L'inizio per il proc è questo

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

ho bisogno per fornire il un var per il fuori parametro, è così come? Ho provato:

var z NUMBER; 

Ma ottenere questo errore quando provo a fare funzionare il proc

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

Anche quando ero in SQL-sviluppatore mi ha dato l'utilizzo e mostrare gli ingressi in ordine inverso, vale a dire:

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

Offrite loro in ordine inverso o è solo qualcosa con SQL-Developer

Non ho scritto la procedura e normalmente non mi occupo di loro, quindi potrei mancare qualcosa di ovvio.

Grazie

risposta

14

avete due opzioni, un/blocco SQL PL o SQL * Plus legherai variabili:

var z number 

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

print z 
-1

si è dimenticato di mettere z come variabile di legatura.

Il seguente comando EXECUTE esegue un'istruzione PL/SQL che fa riferimento a una stored procedure:

SQL> EXECUTE - 
> :Z := EMP_SALE.HIRE('JACK','MANAGER','JONES',2990,'SALES') 

Si noti che il valore restituito dalla stored procedure è essere di ritorno in: Z

+3

-1 una funzione può essere usato in un'espressione, una procedura non può. –

Problemi correlati