QCM PL/SQL Corrigé – Partie 22
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. Quelle est la syntaxe correcte pour créer une procédure en PL/SQL ?
A
CREATE PROCEDURE procedure_name IS BEGIN -- instructions END;
B
PROCEDURE procedure_name IS BEGIN -- instructions END procedure_name;
C
CREATE PROCEDURE procedure_name AS BEGIN -- instructions END;
D
CREATE PROCEDURE procedure_name PROCEDURE BEGIN -- instructions END;
2. Quel est le rôle du mot-clé DEFAULT
dans la déclaration d’une variable en PL/SQL ?
A Il permet d’assigner une valeur par défaut à la variable lorsqu’aucune valeur n’est fournie.
B Il permet de forcer la valeur d’une variable à être null.
C Il définit la variable comme étant obligatoire dans un bloc PL/SQL.
D Il indique que la variable peut être utilisée dans des requêtes SQL.
3. Que fait le code PL/SQL suivant ?
CREATE OR REPLACE PROCEDURE increase_salary(p_emp_id INT, p_percentage FLOAT) IS BEGIN UPDATE employees SET salary = salary + (salary * p_percentage / 100) WHERE employee_id = p_emp_id; COMMIT; END;
A Cette procédure supprime un employé de la table employees.
B Cette procédure crée un nouvel employé avec un salaire basé sur le pourcentage donné.
C Cette procédure modifie les salaires de tous les employés d’un pourcentage donné.
D Cette procédure augmente le salaire d’un employé donné en fonction du pourcentage spécifié.
4. Quelle instruction permet de commencer une transaction dans PL/SQL ?
A START TRANSACTION
B BEGIN TRANSACTION
C BEGIN
D OPEN TRANSACTION
5. Quelle est la différence entre RAISE
et RAISE_APPLICATION_ERROR
dans PL/SQL ?
A RAISE est utilisé pour lever une exception définie par l’utilisateur, tandis que RAISE_APPLICATION_ERROR lève une exception système.
B RAISE est utilisé pour lever une exception système, tandis que RAISE_APPLICATION_ERROR lève une exception définie par l’utilisateur.
C RAISE permet de lever une exception avec un code d’erreur spécifique, tandis que RAISE_APPLICATION_ERROR est utilisé pour signaler une erreur utilisateur avec un message personnalisé.
D RAISE est utilisé pour générer une erreur SQL, tandis que RAISE_APPLICATION_ERROR est utilisé pour générer des erreurs d’exécution.
6. Que fait le code PL/SQL suivant ?
DECLARE v_counter INT := 1; BEGIN FOR i IN 1..3 LOOP DBMS_OUTPUT.PUT_LINE('Counter: ' || v_counter); v_counter := v_counter + 1; END LOOP; END;
A Il affiche « Counter: 1 », « Counter: 2 », « Counter: 3 », en incrémentant v_counter à chaque itération.
B Il affiche « Counter: 1 » trois fois sans incrémenter v_counter.
C Il affiche « Counter: 1 », « Counter: 2 », « Counter: 3 », mais sans utiliser la variable v_counter.
D Il génère une erreur car v_counter n’est pas mis à jour.
7. Quelle instruction est utilisée pour déclarer une variable de type BOOLEAN dans PL/SQL ?
A BOOLEAN <nom_variable>;
B DECLARE <nom_variable> BOOLEAN;
C BOOLEAN : <nom_variable>;
D DECLARE <nom_variable> AS BOOLEAN;
8. Que fait le code PL/SQL suivant ?
BEGIN DELETE FROM employees WHERE department_id = 20; COMMIT; END;
A Il supprime tous les employés du département 20 et valide la transaction.
B Il met à jour les informations des employés du département 20.
C Il insère de nouveaux employés dans le département 20.
D Il sélectionne les employés du département 20 sans les supprimer.
9. Que fait le code PL/SQL suivant ?
BEGIN DECLARE v_salary employees.salary%TYPE; BEGIN SELECT salary INTO v_salary FROM employees WHERE employee_id = 1002; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Aucun employé trouvé'); END; END;
A Il récupère le salaire de l’employé avec l’ID 1002, ou affiche un message d’erreur si aucun employé n’est trouvé.
B Il génère une erreur si aucun employé avec l’ID 1002 n’est trouvé.
C Il affiche le salaire de l’employé avec l’ID 1002.
D Il ne récupère pas le salaire, mais affiche un message d’erreur.
10. Quelle est la commande pour récupérer une valeur de retour d’une fonction dans une variable en PL/SQL ?
A SELECT INTO
B FETCH INTO
C RETURN INTO
D :=
(opérateur d’affectation)