QCM PL/SQL Corrigé – Partie 27
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. Comment empêcher une exception dans un bloc PL/SQL de se propager à l’extérieur du bloc ?
A Utiliser PRAGMA EXCEPTION_INIT
B Utiliser EXCEPTION
dans la partie EXCEPTION
sans lever l’exception
C Utiliser RESCUE
dans la partie EXCEPTION
D Utiliser EXIT WHEN
dans la partie EXCEPTION
2. Que fait la commande SET SERVEROUTPUT ON
dans un script PL/SQL ?
SET SERVEROUTPUT ON; BEGIN DBMS_OUTPUT.PUT_LINE('Hello, World!'); END;
A Elle affiche « Hello, World! » dans la sortie serveur.
B Elle génère une erreur car SET SERVEROUTPUT ON
n’est pas une commande valide.
C Elle affiche « Hello, World! » dans la fenêtre SQL*Plus.
D Elle met en pause l’exécution du script jusqu’à ce que l’utilisateur confirme.
3. Que fait le code PL/SQL suivant ?
DECLARE v_counter INT; BEGIN FOR v_counter IN REVERSE 1..5 LOOP DBMS_OUTPUT.PUT_LINE('Counter: ' || v_counter); END LOOP; END;
A Il affiche « Counter: 5 », « Counter: 4 », « Counter: 3 », « Counter: 2 », « Counter: 1 ».
B Il affiche « Counter: 1 », « Counter: 2 », « Counter: 3 », « Counter: 4 », « Counter: 5 ».
C Il génère une erreur à cause de l’utilisation de REVERSE dans une boucle FOR.
D Il affiche rien car le compteur commence de 5 et descend à 1.
4. Quelle commande est utilisée pour associer un curseur à une exception dans PL/SQL ?
A ASSOCIATE CURSOR
B PRAGMA EXCEPTION_INIT
C CURSOR_EXCEPTION
D EXCEPTION_ASSOCIATION
5. En PL/SQL, que fait l’instruction ALTER SESSION
?
A Elle crée une nouvelle session.
B Elle exécute un bloc de code PL/SQL.
C Elle redémarre la session de la base de données.
D Elle modifie les paramètres d’une session en cours.
6. Que fait le code PL/SQL suivant ?
DECLARE v_salary employees.salary%TYPE; BEGIN UPDATE employees SET salary = salary + 500 WHERE employee_id = 1001 RETURNING salary INTO v_salary; DBMS_OUTPUT.PUT_LINE('Updated Salary: ' || v_salary); END;
A Il met à jour le salaire de l’employé avec l’ID 1001 et affiche le salaire mis à jour.
B Il génère une erreur car la clause RETURNING INTO ne peut pas être utilisée avec UPDATE.
C Il met à jour le salaire de l’employé avec l’ID 1001 sans afficher de résultat.
D Il affiche uniquement l’ID de l’employé mis à jour.
7. Que fait le code PL/SQL suivant ?
DECLARE v_count INT; BEGIN SELECT COUNT(*) INTO v_count FROM employees WHERE department_id = 10; DBMS_OUTPUT.PUT_LINE('Number of employees in department 10: ' || v_count); END;
A Il affiche le nombre d’employés dans le département 10.
B Il génère une erreur car COUNT(*)
ne peut pas être utilisé avec SELECT INTO
.
C Il affiche « Number of employees in department 10: 0 » si aucun employé n’est dans le département 10.
D Il ne fait rien car COUNT(*)
est mal utilisé dans le code.
8. Quelle est la bonne méthode pour récupérer la première ligne d’une table dans PL/SQL ?
A Utiliser FETCH FIRST ROW
B Utiliser SELECT INTO
avec une clause WHERE ROWNUM = 1
C Utiliser SELECT FIRST
D Utiliser FETCH INTO
sans clause WHERE
9. Que fait la commande ROLLBACK TO SAVEPOINT
en PL/SQL ?
A Elle annule toutes les modifications après un SAVEPOINT.
B Elle annule toutes les modifications effectuées depuis le début de la session.
C Elle annule les modifications effectuées après un certain point, mais garde le reste.
D Elle applique définitivement toutes les modifications après le SAVEPOINT.
10. Quelle est la bonne syntaxe pour déclarer une table temporaire dans PL/SQL ?
A CREATE TEMPORARY TABLE table_name AS SELECT * FROM table_name;
B CREATE GLOBAL TEMPORARY TABLE table_name AS SELECT * FROM table_name;
C DECLARE TEMPORARY TABLE table_name;
D CREATE TABLE table_name TEMPORARY AS SELECT * FROM table_name;