Blog

Oracle Tips #5 [Exception on the fly]

[lang_en]

To raise an Exception from a Trigger, Stored Procedure or Function without needing anything you can use the function : raise_application_error.

Syntax : raise_application_error(<your exception integer code>, <your string description>);

Per scatenare un eccezione da un Trigger o una Stored Procedure o una Funzione Oracle si può semplicemente utilizzare la funzione di sistema : : raise_application_error.

Sintassi : raise_application_error(<your exception integer code>, <your string description>);

Ovviamente le eccezioni sono uno strumento ormai indispensabile che viene sfruttatto non solo dalle cose che produciamo noi ma anche in automatico da controlli di sistema sul ns codice, tra le eccezioni più comuni nei linguaggi ad alto livello figurano i “null pointer exception” le “division by zero” etc.
In ambito DB le eccezioni più comuni in assoluto sono quelle relative a subquery che tornano più di un valore. Se volessimo in oracle gestire le eccezioni in modo molto puntuale all’interno del codice di una procedura o di un trigger la cosa risulta abbastanza semplice.

Nel seguente esempio supponiamo di inserire la gestione di un eccezione all’interno di una funzione e di voler scrivere il messaggio dell’eccezione dentro una tabella di log , solo per una porzione di codice della funzione stessa , ora facciamo una funzione in cui vi è un codice che genera un eccezione e intercettiamo il messaggio di errore :

se volessimo chiamare la funzione e far comarire l’errore :

dopodiche vedremo la scritta nella ns tabella di log.

sperando che sia utile per qualcuno vi saluto.
ivan

[/lang_en]

[lang_it]

Per scatenare un eccezione da un Trigger o una Stored Procedure o una Funzione Oracle si può semplicemente utilizzare la funzione di sistema : : raise_application_error.

Sintassi : raise_application_error(<your exception integer code>, <your string description>);

Ovviamente le eccezioni sono uno strumento ormai indispensabile che viene sfruttatto non solo dalle cose che produciamo noi ma anche in automatico da controlli di sistema sul ns codice, tra le eccezioni più comuni nei linguaggi ad alto livello figurano i “null pointer exception” le “division by zero” etc.
In ambito DB le eccezioni più comuni in assoluto sono quelle relative a subquery che tornano più di un valore. Se volessimo in oracle gestire le eccezioni in modo molto puntuale all’interno del codice di una procedura o di un trigger la cosa risulta abbastanza semplice.

Nel seguente esempio supponiamo di inserire la gestione di un eccezione all’interno di una funzione e di voler scrivere il messaggio dell’eccezione dentro una tabella di log , solo per una porzione di codice della funzione stessa , ora facciamo una funzione in cui vi è un codice che genera un eccezione e intercettiamo il messaggio di errore :

se volessimo chiamare la funzione e far comarire l’errore :

dopodiche vedremo la scritta nella ns tabella di log.

sperando che sia utile per qualcuno vi saluto.
ivan

[/lang_it]

Lascia un commento

Scoprite cosa possiamo fare per il vostro business
Tecnologie e Partner