2011-01-28 8 views
7

Come faccio a sapere in Rospo quale è il valore restituito di una funzione?Come ottengo il valore restituito da una funzione in Oracle utilizzando Rospo

Io corro qualcosa di simile a questo codice:

declare r number; 
begin 
    r:= packagename.functionname(paraname); 
end; 

non riesco a capire come ottenere "r" è tornato alla griglia di dati, alcuni post suggeriscono di usare l'uscita DBMS, ma nulla è scritto ad esso quando eseguo il codice.

La funzione esegue aggiornamenti, impegna, chiama altre funzioni e contiene cursori.

risposta

12
begin 
    dbms_output.put_line(packagename.functionname(paraname)); 
end; 

Avrai bisogno di trasformare l'uscita in prima di eseguire questo. Per farlo, seleziona la scheda "Output DBMS" nella parte inferiore dell'editor, quindi fai clic sul pulsante più a sinistra sotto la scheda (dovrebbe raffigurare un cerchio rosso, con il tooltip "Turn Output On" (se è un cerchio verde, uscita è già attivo)).

I risultati della query verranno scritti nella finestra "Uscita DBMS", non nella "Griglia dati" (potrebbe essere necessario attendere alcuni secondi affinché il polling raccolga i risultati). Se si utilizza un tipo definito dall'utente o un cursore di riferimento, questo sarà insufficiente e sarà necessario elaborare i risultati nel blocco anonimo prima di scriverli.

+0

Inoltre è possibile attivare "Esegui automaticamente il polling per l'output dopo l'esecuzione" nella stessa area in basso. – Andrew

8

ne dite solo:

select packagename.functionname(paraname) from dual; 
+2

Provato ma ottenere: "ORA-14552 non può eseguire un DDL, eseguire il commit o il rollback all'interno di una query o DML." Post modificato per fornire maggiori informazioni. – Stagg

-1

La risposta da Klaus di

selezionare packagename.functionname (paraname) da doppio;

ha funzionato per me ma ha restituito solo un cursore. Questo visualizzato come (CURSOR) nella griglia di dati in Toad. Una volta che ho fatto doppio clic su questo, ha aperto una nuova finestra con una griglia di dati per quel cursore e ho visto i miei risultati.

+2

Questo è più un commento che una nuova risposta alla domanda – slfan

Problemi correlati