QCM PL/SQL Corrigé – Partie 11

QCM sur PL/SQL avec des réponses pour la préparation des entretiens d’embauche, tests en ligne, examens et certifications. Ces questions et réponses sur PL/SQL comprennent divers sujets tel que les bases de PL/SQL, les variables, les constantes, les boucles, les déclencheurs, les curseurs, les procédures, etc…. Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur PL/SQL.
 
 

1. Les erreurs rencontrées pendant l’exécution du programme sont appelées ___________ en PL/SQL.

A FUNCTION

B EXCEPTION

C CURSOR

D PROCEDURE

B
En PL/SQL, les erreurs rencontrées pendant l’exécution du programme sont appelées exceptions. Les exceptions peuvent être des erreurs définies par le système (comme une division par zéro ou une violation de contrainte) ou des exceptions définies par l’utilisateur (créées par le programmeur pour gérer des situations spécifiques).

Lorsque ces erreurs se produisent, elles peuvent être capturées et gérées dans une section EXCEPTION du bloc PL/SQL pour éviter que l’application ne plante.

 

 

2. Combien de types d’exceptions existe-t-il ?

A 1

B 2

C 3

D 4

C
En PL/SQL, il existe 3 types d’exceptions:

  • Exceptions pré-définies (ou système): Ce sont des erreurs générées par le système, comme la division par zéro, une violation de contrainte, une erreur d’index hors limite, etc. Par exemple, NO_DATA_FOUND, TOO_MANY_ROWS, ZERO_DIVIDE, etc.
  • Exceptions définies par l’utilisateur: Ce sont des exceptions que vous définissez explicitement dans votre code PL/SQL pour gérer des situations spécifiques. Vous pouvez utiliser le mot-clé RAISE pour lever une exception personnalisée.
  • Exceptions non nommées (ou implicites): Ce sont des exceptions qui ne sont pas explicitement nommées et qui sont gérées par le gestionnaire d’exceptions de PL/SQL. Elles peuvent être capturées par une exception OTHERS dans un bloc EXCEPTION.

 

 

3. Lequel des éléments suivants est un type d’exceptions?

A EXCEPTION définies par le système

B EXCEPTION définies par l’utilisateur

C Les deux A et B

D Aucune de ces réponses

C
En PL/SQL, il existe deux types principaux d’exceptions:

  • Exceptions définies par le système: Ce sont des erreurs prédéfinies qui se produisent automatiquement lors de l’exécution du programme. Elles incluent des erreurs comme ZERO_DIVIDE, NO_DATA_FOUND, TOO_MANY_ROWS, etc. Ces erreurs sont générées par le système Oracle lorsque certaines conditions spécifiques se produisent.
  • Exceptions définies par l’utilisateur: Ce sont des exceptions personnalisées créées par le programmeur pour gérer des situations spécifiques dans le programme. Vous pouvez les définir avec le mot-clé RAISE et les lever manuellement dans le code en fonction des besoins de votre application.

 

 
 

4. Quelle commande est utilisée pour lever une exception de manière explicite ?

A RINSE

B RAISE

C ROSE

D RISE

B
En PL/SQL, la commande RAISE est utilisée pour lever une exception de manière explicite. Cela permet de générer une exception personnalisée ou de relancer une exception déjà existante (système ou définie par l’utilisateur).

 

 

5. Lequel des énoncés suivants est VRAI à propos des exceptions définies par l’utilisateur ?

A Les utilisateurs peuvent explicitement lever une exception en utilisant l’instruction RAISE.

B L’instruction RAISE_APPLICATION_ERROR peut être utilisée pour lever explicitement une exception définie par l’utilisateur.

C Les deux A et B

D Aucune de ces réponses

C
  • A) RAISE permet de lever une exception définie par l’utilisateur.
  • B) RAISE_APPLICATION_ERROR permet de lever une exception avec un code d’erreur personnalisé.

Les deux instructions peuvent être utilisées pour lever des exceptions définies par l’utilisateur.

 

 

6. Quelle est la syntaxe utilisée pour les exceptions définies par l’utilisateur ?

A DECLARE myexception EXCEPTION;

B DECLARE EXCEPTION;

C DECLARE myexception;

D EXCEPTION;

A
DECLARE myexception EXCEPTION; est la syntaxe des exceptions définies par l’utilisateur.

 

 
 

7. Laquelle des clauses suivantes ne figure pas dans la syntaxe lors du déclenchement d’une exception ?

A END

B CLOSE

C WHEN

D DECLARE

B
La clause CLOSE ne figure pas dans la syntaxe lors du déclenchement d’une exception. Exemple:

DECLARE  
   -- exception définie par l'utilisateur 
   ex_invalid_id  EXCEPTION; 
BEGIN 
   IF c_id <= 0 THEN 
      RAISE ex_invalid_id;  
   END IF; 

EXCEPTION 
   WHEN ex_invalid_id THEN 
      dbms_output.put_line('ID doit être supérieur à zéro!'); 
END; 
/

 

 

8. Lorsque SELECT INTO ne renvoie aucune ligne, quelle exception prédéfinie est levée ?

A NO_DATA_FOUND

B ACCESS_INTO_NULL

C VALUE_ERROR

D NOT_LOGGED_ON

A
Lorsque SELECT INTO ne renvoie aucune ligne, l’exception prédéfinie NO_DATA_FOUND est levée.

 

 

9. Quand l’exception ACCESS_INTO_NULL se produit-elle ?

A Elle est soulevée lorsqu’une colonne d’index unique avec des valeurs en double est déclenchée.

B Un nom d’utilisateur ou un mot de passe non valide est utilisé par un programme pour se connecter à une base de données.

C L’attribution automatique d’une valeur à un objet NULL provoque cette exception.

D Elle est soulevée lorsque plus d’une ligne est renvoyée par une instruction SELECT INTO.

C
L’exception ACCESS_INTO_NULL en PL/SQL se produit lorsque vous essayez d’accéder à un objet ou d’assigner une valeur à un objet NULL. Cela peut se produire, par exemple, lorsque vous tentez de manipuler une variable ou un attribut d’objet qui est NULL. Exemple:

DECLARE
    v_obj NULL;  -- Une variable NULL
BEGIN
    -- Tentative d'accès à un objet NULL, ce qui provoque une exception
    v_obj.some_attribute := 'value';  -- Cela soulèvera l'exception ACCESS_INTO_NULL
EXCEPTION
    WHEN ACCESS_INTO_NULL THEN
        DBMS_OUTPUT.PUT_LINE('Une tentative d\'accès à un objet NULL a échoué.');
END;

 

 
 

10. Une exception qui se produit lorsqu’on tente d’accéder à une base de données sans s’y connecter est:

A PROGRAM_ERROR

B NOT_LOGGED_IN

C NOT_LOGGED_ON

D NULL_LOGGED-ON

C
L’exception NOT_LOGGED_ON se produit lorsqu’un programme essaie d’exécuter une opération qui nécessite une connexion à la base de données, mais qu’il n’est pas connecté à cette base de données.

Cela peut se produire si vous tentez d’exécuter une requête ou une autre opération alors que la session de base de données a été interrompue ou qu’aucune connexion active n’existe.

 

 

11. Quelle exception est levée lorsqu’il y a un problème interne dans PL/SQL ?

A PROGRAM_ERROR

B PROBLEM_ERROR

C INTERNAL_ERROR

D VALUE_ERROR

A
L’exception PROGRAM_ERROR est levée lorsqu’il y a un problème interne ou une erreur dans le programme PL/SQL. Cela peut inclure des erreurs liées au système sous-jacent ou des erreurs qui ne sont pas directement liées à la logique de votre code mais à des problèmes internes du moteur PL/SQL.

 

 
 

12. Quand l’exception ZERO_DIVIDE est-elle levée ?

A Ce message d’erreur apparaît lorsqu’un nombre est multiplié par zéro.

B Ce message d’erreur apparaît lorsqu’un nombre est divisé par zéro.

C Ce message d’erreur apparaît lorsqu’un nombre est soustrait de zéro.

D Ce message d’erreur apparaît lorsqu’un nombre est égal à zéro.

B
L’exception ZERO_DIVIDE en PL/SQL est levée lorsqu’une tentative de division par zéro est effectuée dans le programme. Diviser un nombre par zéro est une opération mathématique invalide, ce qui déclenche cette exception. Exemple:

DECLARE
    v_result NUMBER;
BEGIN
    v_result := 10 / 0;  -- Cela soulèvera l'exception ZERO_DIVIDE
EXCEPTION
    WHEN ZERO_DIVIDE THEN
        DBMS_OUTPUT.PUT_LINE('Erreur : Division par zéro.');
END;

 

 

Laisser un commentaire

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