Funzione Oracle Heave_Application_error

Funzione Oracle Heave_Application_error
Quando si tratta di sviluppo, c'è sempre spazio per errori, che si tratti di un errore dell'applicazione o di un errore relativo all'utente. Come sviluppatore, dovrai anticipare dove può verificarsi un errore e agire in anticipo. Comunemente noto come gestione degli errori, questo processo può consentire l'esecuzione senza intoppi anche quando si verifica un errore senza terminare prematuramente.

In questo articolo, imparerai una delle procedure di gestione degli errori nel database Oracle chiamato Heave_Application_error.

Procedura Oracle Heave_Application_error

Raccenda_application_error in Oracle è una procedura memorizzata che consente di raccogliere i messaggi di errore definiti dall'utente.

Quando si lavora con il database Oracle, potresti aver incontrato un messaggio di errore come quello nel seguente:

[42000] [904] ORA-00904: "HI": identificatore non valido

Questo tipo di errore è noto come errore del motore del database. È definito nel database Oracle e sollevato quando si verifica un determinato errore.

Utilizzando la procedura di Heave_Application_error, Oracle ci consente di definire i nostri messaggi personalizzati con un codice di errore e un messaggio specifici.

Questo può essere molto utile quando si verifica un errore specifico e si desidera avvisare l'utente con un messaggio di errore descrittivo. Ciò significa che non avrai mandato le eccezioni di errore senza alcuna affermazione su ciò che è accaduto.

Sintassi e parametri della procedura

Il seguente snippet di codice stabilisce la sintassi della procedura di allevamento_application_error:

rallenta_application_error (
errore_number,
Messaggio,
[Vero | False]
);

La procedura comprende tre parametri principali:

  1. Error_Number - Questo parametro rappresenta un valore intero specifico che è mappato a un codice di errore. Il valore di questo parametro varia da -20000 a -20999.
  2. Messaggio: questo è un valore di stringa che indica il messaggio di errore definito dall'utente da visualizzare all'utente. Il valore del parametro del messaggio ha una lunghezza fino a 70 byte.
  3. KeeperrorStack - Questo parametro è un valore booleano che determina se lo stack di errore debba essere preservato. Per impostazione predefinita, la procedura non mantiene lo stack di errore.

Nota: preservare lo stack di errore significa che l'errore viene aggiunto alla serie di errori precedenti. Se lo stack non è preservato, il nuovo messaggio di errore sostituisce tutti gli errori precedenti.

Di seguito sono riportati alcuni punti essenziali da notare per la procedura di alza_application_error:

  1. Il motore del database interrompe automaticamente e immediatamente l'esecuzione del blocco genitore quando incontra la procedura memorizzata.
  2. La procedura costringe un rollback per tutte le operazioni fatte ai parametri OUT e OUT.
  3. La funzionalità di rollback della procedura rasa_application_error non influisce sulle strutture di dati globali come gli oggetti del database. Tuttavia, se si desidera eseguire un rollback su tali oggetti, è necessario chiamare esplicitamente l'operazione di rollback.

ESEMPIO RIECO_APPLICATION_ERROR UTILIZZO PROCEDURA

In questo esempio, dimostreremo come utilizzare la procedura di alzati_application_error usando lo schema HR.

https: // docs.oracolo.com/cd/b13789_01/server.101/B10771/Scripts003.htm

Prendi in considerazione il seguente codice sorgente fornito:

creare o sostituire la procedura check_commission (
numero EMP_ID
)
È
dipendenti fname.Tipo first_name%;
dipendenti EM.Email%Tipo;
impiegati di sal.Stipendio%tipo;
Commissione dipendenti.Tipo Commission_PCT%;
inizio
Seleziona First_name, e -mail, stipendio, Commission_PCT
in fname, em, sal, commissione
dai dipendenti
dove dipendente_id = emp_id;
Se la commissione è null, allora
rasa_application_error (-20002, "percentuale di commissioni null incontrata!!'|| emp_id);
finisci se;
eccezione
Quando altri allora
Dbms_output.Put_line ('sqlcode:' || sqlcode);
Dbms_output.Put_line ('sqlerrm:' || sqlerrm);
FINE;

L'esempio precedente inizia creando una procedura che accetta un ID dipendente. Usiamo quindi il dipendente per selezionare i valori dai dipendenti. Infine, utilizziamo un'istruzione if per verificare se la commissione della riga ricevuta è null. Se è vero, solleviamo un'eccezione.

Possiamo chiamare la procedura con l'ID impiegato di destinazione:

chiamare check_commission (100);

Produzione:

SQLCODE -438
SQlerrm: SQL0438N APPLICAZIONE ERRORE o AVVERTENZA con testo diagnostico: "Percentuale della Commissione nulla incontrata:. Sqlstate = UD030

Conclusione

In questo tutorial, hai imparato a utilizzare la procedura memorizzata da Raccenda_Application_error per raccogliere i messaggi di errore personalizzati.