Oracle
 sql >> Database >  >> RDS >> Oracle

Come dichiarare l'eccezione definita dall'utente utilizzando una variabile di eccezione nel database Oracle

Nell'introduzione alle eccezioni PL/SQL abbiamo appreso che esistono tre modi per dichiarare eccezioni definite dall'utente in Oracle Database. In questo tutorial esploreremo il primo modo e impareremo come dichiarare un'eccezione definita dall'utente utilizzando una variabile di tipo di dati Eccezione.

La dichiarazione di un'eccezione definita dall'utente utilizzando la variabile Exception è un processo in tre fasi. Questi tre passaggi sono –

  1. Dichiara una variabile di tipo di dati di eccezione – Questa variabile si prenderà l'intero onere sulle spalle.
  2. Sollevare l'eccezione – Questa è la parte in cui informi il compilatore della condizione che attiverà l'eccezione.
  3. Gestisci l'eccezione – Questa è l'ultima sezione in cui specifichi cosa accadrà quando si attiverà l'errore che hai generato.

In questo tutorial PL/SQL ti spiegherò ciascuno di questi tre passaggi con l'aiuto di un codice PL/SQL.

A scopo dimostrativo scriverò un codice che verificherà se il divisore è zero o meno nell'operazione di divisione. Se è zero, si verificherà un errore e verrà visualizzato all'utente, altrimenti sullo schermo di output verrà restituito un valore effettivo che è il risultato dell'aritmetica della divisione.

Passaggio 1:dichiara una variabile di tipo di dati Eccezione

Per variabile Exception intendo una variabile con tipo di dati Exception. Come qualsiasi altra variabile PL/SQL, puoi dichiarare una variabile Exception nella sezione di dichiarazione del blocco PL/SQL anonimo e denominato. Questa variabile di eccezione funzionerà quindi come eccezione definita dall'utente per il codice.

DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;

In questa sezione di dichiarazione abbiamo 4 variabili. Tra queste 4 variabili le prime 3 sono normali variabili del tipo di dati Number e la 4 che è ex_DivZero è la speciale variabile del tipo di dati EXCEPTION. Questa variabile diventerà la nostra eccezione definita dall'utente per questo programma.

Passaggio 2:solleva l'eccezione

Il passaggio successivo dopo aver dichiarato una variabile Exception consiste nel sollevare l'eccezione. Per sollevare l'eccezione in PL/SQL utilizziamo l'istruzione Raise.

L'istruzione Raise è un tipo speciale di istruzione PL/SQL che modifica il normale flusso di esecuzione del codice. Non appena il compilatore incontra una condizione di rilancio, trasferisce il controllo al gestore delle eccezioni.

BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;

Qui la condizione di rilancio è accompagnata dalla condizione IF-THEN. Con l'aiuto di questo possiamo evitare cambi indesiderati durante il flusso di controllo del programma. Utilizzando If Condition ci assicuriamo che questo errore entri in azione solo quando il divisore è uguale a 0.

var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);

Dopo aver scritto la logica per sollevare l'errore, puoi scrivere le altre istruzioni eseguibili del codice proprio come abbiamo fatto qui. Dopo l'istruzione Raise stiamo eseguendo l'operazione aritmetica di divisione e memorizzando il risultato nella variabile var_result, oltre a visualizzarlo come output utilizzando l'istruzione DBMS OUTPUT.

Passaggio 3:gestisci l'eccezione

Questa è la sezione principale del codice. Qui scriviamo la logica per la nostra eccezione definita dall'utente e diciamo al compilatore cosa dovrebbe fare se e quando si verifica quell'errore.

EXCEPTION WHEN ex_DivZero THEN
    DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

Qui abbiamo il gestore delle eccezioni per la variabile ex_DivZero. Nella sezione di gestione delle eccezioni abbiamo un'istruzione DBMS OUTPUT che verrà visualizzata quando il nostro utente definisce l'errore che si verifica ex_DivZero.

Ora raggruppiamo insieme tutti questi blocchi di codici.

Dividi per zero errori utilizzando PL/SQL User-define Exception in Oracle Database

SET SERVEROUTPUT ON;
DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;
BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;
  var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);
  EXCEPTION WHEN ex_DivZero THEN
      DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

Prima di eseguire questo programma assicurati di aver impostato SERVEROUTPUT su altrimenti non sarai in grado di vedere il risultato.

Come nel passaggio 1 impostiamo il valore del divisore su zero che a sua volta aumenterà l'errore di definizione dell'utente ex_DivZero per questo motivo durante la compilazione del codice sopra vedrai la stringa "Error Error – Your Divisor is Zero" la stessa che abbiamo specificato nel nostro gestore di eccezioni (passaggio 3).

Questo è il tutorial PL/SQL su come dichiarare un'eccezione definita dall'utente utilizzando una variabile di tipo di dati Exception. Spero ti sia piaciuto e hai imparato qualcosa di nuovo. Se è così, assicurati di condividere questo blog sui tuoi social media e aiuta gli altri a imparare insieme a me e al mio canale. Grazie e buona giornata!