QCM PL/SQL Corrigé – Partie 23
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 fait le code PL/SQL suivant ?
ALTER TABLE employees ADD (email VARCHAR2(100));
A Il ajoute une colonne email de type VARCHAR2 avec une longueur maximale de 100 caractères à la table employees.
B Il modifie la taille de la colonne email dans la table employees.
C Il supprime la colonne email dans la table employees.
D Il renomme la colonne email dans la table employees.
2. Que fait le code PL/SQL suivant ?
TRUNCATE TABLE employees;
A Il met à jour toutes les lignes de la table employees.
B Il insère de nouvelles lignes dans la table employees.
C Il supprime la table employees de la base de données.
D Il supprime toutes les lignes de la table employees, mais conserve la structure de la table.
3. Qu’est-ce qu’un curseur explicite dans PL/SQL ?
A Un curseur qui est ouvert et fermé automatiquement par Oracle.
B Un curseur défini par l’utilisateur pour traiter plusieurs lignes d’une requête.
C Un curseur qui ne permet d’afficher qu’une seule ligne à la fois.
D Un curseur utilisé uniquement dans des fonctions SQL, mais pas dans PL/SQL.
4. Que fait le code PL/SQL suivant ?
INSERT INTO employees_backup (emp_id, first_name, last_name) SELECT emp_id, first_name, last_name FROM employees WHERE department_id = 10;
A Il copie les données des employés du département 10 de la table employees vers la table employees_backup.
B Il met à jour les informations des employés du département 10 dans la table employees.
C Il insère un nouvel employé dans la table employees_backup.
D Il supprime les employés du département 10 dans la table employees_backup.
5. Que fait le code PL/SQL suivant ?
BEGIN UPDATE employees SET salary = salary + 500 WHERE department_id = 30; ROLLBACK; END;
A Il annule les modifications de salaires effectuées pour les employés du département 30.
B Il valide la mise à jour des salaires des employés du département 30.
C Il affiche un message d’erreur concernant les salaires des employés du département 30.
D Il ajoute 500 au salaire des employés du département 30 et enregistre la transaction.
6. Quelle est la syntaxe correcte pour manipuler des exceptions dans un bloc PL/SQL ?
A
BEGIN -- code EXCEPTION WHEN exception_name THEN -- code de gestion END;
B
EXCEPTION BEGIN -- code WHEN exception_name THEN -- code de gestion END;
C
BEGIN -- code EXCEPTION WHEN exception_name THEN -- code de gestion FINISH;
D
EXCEPTION WHEN exception_name THEN -- code de gestion BEGIN;
7. Comment peut-on déclarer un tableau associatif en PL/SQL ?
A TYPE tab IS TABLE OF VARCHAR2(50);
B TYPE tab IS ASSOCIATIVE OF VARCHAR2(50);
C TYPE tab IS ARRAY OF VARCHAR2(50);
D TYPE tab IS TABLE OF VARCHAR2(50) INDEX BY PLS_INTEGER;
8. Quelle est la différence entre EXECUTE IMMEDIATE
et EXECUTE
dans PL/SQL ?
A EXECUTE est utilisé pour exécuter des commandes SQL statiques, tandis que EXECUTE IMMEDIATE est utilisé pour exécuter des commandes SQL dynamiques.
B EXECUTE est une commande SQL standard, tandis que EXECUTE IMMEDIATE est spécifique à PL/SQL.
C EXECUTE IMMEDIATE est plus rapide que EXECUTE pour exécuter des commandes SQL simples.
D Il n’y a aucune différence entre EXECUTE et EXECUTE IMMEDIATE.
9. Que fait le code PL/SQL suivant ?
CREATE OR REPLACE TRIGGER salary_update AFTER UPDATE ON employees FOR EACH ROW BEGIN IF :NEW.salary > 10000 THEN DBMS_OUTPUT.PUT_LINE('Salary updated to a high value'); END IF; END;
A Il affiche un message après la mise à jour du salaire d’un employé si le salaire dépasse 10 000.
B Il met à jour le salaire des employés qui ont un salaire supérieur à 10 000.
C Il génère une erreur lorsque le salaire d’un employé est mis à jour.
D Il supprime les employés dont le salaire dépasse 10 000.
10. Quel est le rôle d’un trigger BEFORE
dans une base de données Oracle ?
A Il annule une modification avant qu’elle ne soit effectuée sur une table.
B Il permet de récupérer une valeur avant qu’une commande SQL ne soit exécutée.
C Il permet d’exécuter une action après qu’une modification ait été effectuée sur une table.
D Il permet d’exécuter une action avant qu’une modification ne soit effectuée sur une table.