Ho una procedura scritta in Oracle. Purtroppo non posso mostrare il suo codice. Da qualche parte all'interno è selezionato dove l'esecuzione si è arrestata a causa dell'assenza di dati richiesti. Sembra che questoDifferenza tra chiamata oracle ed esecuzione nel contesto del lancio degli errori
select value into l_value
from config
where code = upper(p_code);
Così, quando io chiamo questa procedura come questa (in sqldeveloper)
execute some_package.some_procedure('CODE');
getta
Error report -
ORA-01403: no data found
ORA-06512: at "XXXXXXXXXXXXXXXXXXX", line 111
ORA-06512: at "XXXXXXXXXXXXXXXXXXX", line 111
ORA-06512: at line 1
01403. 00000 - "no data found"
*Cause: No data was found from the objects.
*Action: There was no data from the objects which may be due to end of fetch.
Ma quando io lo chiamo come questo
call some_package.some_procedure('CODE');
si blocca a Lo stesso posto (come posso suggerire dal risultato, memorizzato in DB), ma non fa eccezione.
some_package.some_procedure('CODE') succeeded.
Cosa succede? E perché c'è una tale differenza?