Exercices Corrigés PL/SQL: Exceptions

La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec PL/SQL. Nous espérons que ces exercices vous aideront à améliorer vos compétences en PL/SQL. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!

Vous pouvez lire notre tutoriel PL/SQL avant de résoudre les exercices suivants.

 
 

Exercices corrigés PL/SQL: Les exceptions

1. Écrire un bloc PL/SQL pour générer une exception lors d’une division par zéro. Exemple:

dividende = 5;
diviseur = 0;
Erreur : Division par zéro

2. Traiter l’exception NO_DATA_FOUND lors de l’extraction d’une ligne d’une table et qu’aucun enregistrement correspondant n’est trouvé.

Table: clients

+-----------+----------------+-------------+--------+----------------+
| client_id |     nom_cl     |    ville    |  age   | fournisseur_id |
+-----------+----------------+-------------+--------+----------------+
|    1001   | Alex Barbara   | Paris       |  25    |      6001      |
|    1002   | Lois Collins   | Lyon        |  30    |      6001      |
|    1005   | Karen Farley   | Nice        |  44    |      6002      |
|    1006   | Kevin Thompson | Paris       |  65    |      6003      |
+-----------+----------------+-------------+--------+----------------+

Exemple:

SELECT nom_cl FROM clients WHERE client_id = 9999;
Erreur : Aucun enregistrement correspondant n'a été trouvé

3. Traiter l’exception TOO_MANY_ROWS lors de la récupération de plusieurs lignes au lieu d’une seule dans une table.

Table: clients

+-----------+----------------+-------------+--------+----------------+
| client_id |     nom_cl     |    ville    |  age   | fournisseur_id |
+-----------+----------------+-------------+--------+----------------+
|    1001   | Alex Barbara   | Paris       |  25    |      6001      |
|    1002   | Lois Collins   | Lyon        |  30    |      6001      |
|    1005   | Karen Farley   | Nice        |  44    |      6001      |
|    1006   | Kevin Thompson | Paris       |  65    |      6003      |
+-----------+----------------+-------------+--------+----------------+

Exemple:

SELECT * FROM clients WHERE fournisseur_id = 6001;
Plusieurs lignes trouvées pour l'identifiant du fournisseur: 6001
 
 
4. Traiter l’exception INVALID_NUMBER lors de la conversion d’une valeur non numérique en un nombre. Exemple:

'hello' -> Number (Erreur : Nombre invalide)

5. Traiter l’exception DUP_VAL_ON_INDEX lors de l’insertion d’une valeur dupliquée dans une table avec une contrainte unique.

Table: clients

+-----------+----------------+-------------+--------+----------------+
| client_id |     nom_cl     |    ville    |  age   | fournisseur_id |
+-----------+----------------+-------------+--------+----------------+
|    1001   | Alex Barbara   | Paris       |  25    |      6001      |
|    1002   | Lois Collins   | Lyon        |  30    |      6001      |
|    1005   | Karen Farley   | Nice        |  44    |      6001      |
|    1006   | Kevin Thompson | Paris       |  65    |      6003      |
+-----------+----------------+-------------+--------+----------------+

Exemple:

INSERT INTO clients (client_id) VALUES (1001);
Erreur : Une valeur en double existe déjà.

6. Gérer l’exception VALUE_ERROR lors de l’affectation d’une valeur incompatible à une variable. Exemple:

Number =  'hello' (Affectation de valeurs incompatibles)
 
 
7. Traiter l’exception PROGRAM_ERROR lorsqu’un programme PL/SQL rencontre une erreur interne. Exemple:

Si 20 > 5 alors (levez une erreur interne)

8. Traiter l’exception ACCESS_INTO_NULL lors d’une tentative d’accès à un enregistrement NULL.

Table: employees

+------+---------+----------+----------+----------------+
|  id  |   nom   |  prenom  | salaire  | departement_id |
+------+---------+----------+----------+----------------+
| 1001 | Eddie   | Parker   | 6000.00  | 8              |
| 1002 | Eleanor | Deas     | 4500.00  | 8              |
| 1003 | Glen    | Powell   | 5000.00  | 6              |
| 1004 | Ali     | Fawaz    | 7800.00  | 2              |
| 1005 | Earl    | Horn     | 9000.00  | 9              |
| 1006 | Bryan   | Savoy    | 8000.00  | 3              |
+------+---------+----------+----------+----------------+
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *