QCM PL/SQL Corrigé – Partie 16

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. Que retourne la fonction SYSDATE en PL/SQL ?

A La date actuelle avec la date et l’heure du serveur.

B La date actuelle sans l’heure du serveur.

C La date et l’heure d’une transaction.

D La date de la dernière modification d’un enregistrement.

A
La fonction SYSDATE retourne la date et l’heure actuelles du système, y compris les informations sur l’année, le mois, le jour, l’heure, la minute et la seconde.

 

 

2. À quoi sert le mot-clé BULK COLLECT en PL/SQL ?

A Il permet de traiter des lignes de données en blocs, augmentant l’efficacité du traitement.

B Il permet de collecter des données d’une seule ligne dans une variable.

C Il permet de supprimer des lignes d’une table.

D Il permet d’exécuter des transactions en mode batch.

A
BULK COLLECT est utilisé pour récupérer plusieurs lignes de résultats d’une requête SQL dans des collections (comme des tableaux ou des enregistrements), ce qui permet d’optimiser les performances par rapport à l’utilisation de boucles FETCH classiques. Exemple:

DECLARE
   TYPE emp_table_type IS TABLE OF employees%ROWTYPE;
   emp_table emp_table_type;
BEGIN
   SELECT * BULK COLLECT INTO emp_table FROM employees;
END;

 

 

3. Quel type de trigger est exécuté après une opération INSERT, UPDATE ou DELETE ?

A BEFORE

B AFTER

C INSTEAD OF

D ON ERROR

B
Un trigger de type AFTER est exécuté après qu’une modification (INSERT, UPDATE ou DELETE) soit effectuée sur une table. Exemple:

CREATE OR REPLACE TRIGGER after_insert_trigger
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
   -- Traitement à effectuer après un INSERT
END;

 

 
 

4. Quelle est la syntaxe correcte pour déclarer un type d’objet en PL/SQL ?

A TYPE object_name IS OBJECT (attribute_name datatype);

B TYPE object_name AS OBJECT (attribute_name datatype);

C TYPE object_name OBJECT (attribute_name datatype);

D TYPE object_name OF OBJECT (attribute_name datatype);

A
La syntaxe correcte pour déclarer un type d’objet en PL/SQL est :

DECLARE
   TYPE employee_type IS OBJECT (
      employee_id NUMBER,
      first_name VARCHAR2(50),
      last_name VARCHAR2(50)
   );
BEGIN
   -- Traitement
END;

 

 

5. Que fait la fonction TO_DATE en PL/SQL ?

A Elle convertit une chaîne de caractères en une valeur de type DATE.

B Elle convertit une valeur DATE en chaîne de caractères.

C Elle extrait la partie heure d’une valeur de type DATE.

D Elle effectue une comparaison entre des dates.

A
La fonction TO_DATE est utilisée pour convertir une chaîne de caractères en un type DATE. Exemple:

SELECT TO_DATE('2025-03-12', 'YYYY-MM-DD') FROM dual;

 

 

6. Quelle est la fonction de ROWNUM en PL/SQL ?

A Elle permet de renommer les colonnes d’une requête.

B Elle calcule le nombre total de lignes dans une table.

C Elle permet de supprimer les doublons dans une requête.

D Elle renvoie le numéro de ligne d’une requête de sélection.

D
ROWNUM est utilisée pour attribuer un numéro unique à chaque ligne retournée par une requête SQL. Par exemple:

SELECT ROWNUM, emp_id, first_name FROM employees WHERE ROWNUM <= 5;

Cela retourne les 5 premières lignes.

 

 
 

7. Quelle est la fonction de la procédure DBMS_OUTPUT.PUT_LINE en PL/SQL ?

A Elle affiche un message sur la console ou dans un fichier de log.

B Elle permet de modifier les données dans une table.

C Elle affiche des résultats de requêtes directement dans une interface graphique.

D Elle permet d'exporter les données dans un fichier.

A
DBMS_OUTPUT.PUT_LINE est utilisée pour afficher un message ou des résultats dans la console lors de l'exécution d'un bloc PL/SQL, souvent pour des fins de débogage. Exemple:

BEGIN
   DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;

 

 

8. À quoi sert la clause FOR UPDATE en PL/SQL ?

A Elle permet de verrouiller les lignes sélectionnées pour une mise à jour ultérieure.

B Elle permet d'exporter les résultats de la requête vers un fichier.

C Elle permet de créer des indexes sur les résultats de la requête.

D Elle permet de trier les résultats de la requête.

A
La clause FOR UPDATE est utilisée pour verrouiller les lignes retournées par une requête afin qu'elles ne soient pas modifiées par d'autres transactions avant la mise à jour. Exemple:

SELECT emp_id, salary FROM employees WHERE department_id = 10 FOR UPDATE;

 

 

9. Que permet de faire le mot-clé EXCEPTION_INIT en PL/SQL ?

A Il permet de lister les exceptions générées dans une requête.

B Il permet d'initialiser des exceptions personnalisées avec un code d'erreur.

C Il permet d'initialiser une transaction avant de commencer les modifications.

D Il permet de gérer les erreurs de syntaxe dans un bloc PL/SQL.

B
EXCEPTION_INIT permet de lier une exception personnalisée à un code d'erreur spécifique. Par exemple:

DECLARE
   e_custom_exception EXCEPTION;
   PRAGMA EXCEPTION_INIT(e_custom_exception, -20001);
BEGIN
   -- Code qui peut générer une erreur
EXCEPTION
   WHEN e_custom_exception THEN
      -- Traitement de l'exception
END;

 

 
 

10. Comment peut-on gérer une exception personnalisée dans un bloc PL/SQL ?

A En utilisant EXCEPTION WHEN <exception_name> THEN.

B En utilisant RAISE pour lever l'exception et WHEN <exception_name> THEN pour la capturer.

C En déclarant la fonction ou la procédure avec l'exception personnalisée.

D Il n'est pas possible de créer des exceptions personnalisées dans PL/SQL.

B
Les exceptions personnalisées sont définies et levées avec l'instruction RAISE. Elles peuvent ensuite être capturées avec une gestion d'exception dans la section EXCEPTION du bloc PL/SQL en utilisant WHEN <exception_name> THEN.

 

 

Laisser un commentaire

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