Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment déclarer une exception définie par l'utilisateur à l'aide d'une variable d'exception dans la base de données Oracle

Dans l'introduction aux exceptions PL/SQL, nous avons appris qu'il existe trois façons de déclarer des exceptions définies par l'utilisateur dans Oracle Database. Dans ce didacticiel, nous allons explorer la première méthode et apprendre à déclarer une exception définie par l'utilisateur à l'aide d'une variable de type de données Exception.

La déclaration d'une exception définie par l'utilisateur à l'aide de la variable Exception est un processus en trois étapes. Ces trois étapes sont -

  1. Déclarer une variable de type de données d'exception – Cette variable va prendre tout le fardeau sur ses épaules.
  2. Soulever l'exception – C'est la partie où vous indiquez au compilateur la condition qui déclenchera l'exception.
  3. Gérer l'exception – Il s'agit de la dernière section dans laquelle vous spécifiez ce qui se passera lorsque l'erreur que vous avez signalée se déclenchera.

Dans ce tutoriel PL/SQL, je vais vous expliquer chacune de ces trois étapes à l'aide d'un code PL/SQL.

Aux fins de démonstration, je vais écrire un code qui vérifiera si le diviseur est nul ou non dans l'opération de division. S'il est égal à zéro, une erreur se produira et sera affichée à l'utilisateur, sinon une valeur réelle résultant de l'arithmétique de division sera renvoyée sur l'écran de sortie.

Étape 1 :Déclarez une variable de type de données Exception

Par variable d'exception, j'entends une variable avec un type de données d'exception. Comme toute autre variable PL/SQL, vous pouvez déclarer une variable d'exception dans la section de déclaration du bloc PL/SQL anonyme et nommé. Cette variable d'exception fonctionnera alors comme une exception définie par l'utilisateur pour votre code.

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

Dans cette section de déclaration, nous avons 4 variables. Parmi ces 4 variables, les 3 premières sont des variables de type de données Number normales et la 4 qui est ex_DivZero est la variable de type de données spéciale EXCEPTION. Cette variable deviendra notre exception définie par l'utilisateur pour ce programme.

Étape 2 : Déclencher l'exception

L'étape suivante après la déclaration d'une variable Exception consiste à déclencher l'exception. Pour lever l'exception en PL/SQL, nous utilisons l'instruction Raise.

L'instruction Raise est un type spécial d'instruction PL/SQL qui modifie le flux normal d'exécution du code. Dès que le compilateur rencontre une condition d'augmentation, il transfère le contrôle au gestionnaire d'exceptions.

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

Ici, la condition d'augmentation est accompagnée de la condition IF-THEN. Avec l'aide de cela, nous pouvons éviter les commutateurs indésirables pendant le flux de contrôle du programme. En utilisant la condition If, nous nous assurons que cette erreur n'entrera en action que lorsque le diviseur est égal à 0.

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

Après avoir écrit la logique pour générer l'erreur, vous pouvez écrire vos autres instructions exécutables du code comme nous l'avons fait ici. Après l'instruction Raise, nous effectuons l'opération arithmétique de division et stockons le résultat dans la variable var_result, ainsi que l'affichons en tant que sortie à l'aide de l'instruction DBMS OUTPUT.

Étape 3 :Gérer l'exception

C'est la section principale du code. Ici, nous écrivons la logique de notre exception définie par l'utilisateur et indiquons au compilateur ce qu'il doit faire si et quand cette erreur se produit.

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

Ici, nous avons le gestionnaire d'exceptions pour la variable ex_DivZero. Dans la section de gestion des exceptions, nous avons une instruction DBMS OUTPUT qui s'affiche lorsque notre erreur de définition d'utilisateur qui est ex_DivZero se produit.

Regroupons maintenant tous ces morceaux de codes ensemble.

Divisez par zéro erreur à l'aide de l'exception PL/SQL définie par l'utilisateur dans la base de données Oracle

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;
/

Avant d'exécuter ce programme, assurez-vous d'avoir activé SERVEROUTPUT, sinon vous ne pourrez pas voir le résultat.

Comme à l'étape 1, nous définissons la valeur du diviseur sur zéro, ce qui augmentera à son tour l'erreur de définition de l'utilisateur ex_DivZero à cause de cela lors de la compilation du code ci-dessus, vous verrez la chaîne "Erreur d'erreur - Votre diviseur est zéro" le même que celui que nous avons spécifié dans notre gestionnaire d'exceptions (étape 3).

C'est le tutoriel PL/SQL sur la façon de déclarer une exception définie par l'utilisateur à l'aide d'une variable de type de données Exception. J'espère que vous avez apprécié et appris quelque chose de nouveau. Si c'est le cas, assurez-vous de partager ce blog sur vos réseaux sociaux et aidez les autres à apprendre avec moi et ma chaîne. Merci et bonne journée !