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.

A
La commande ALTER TABLE permet de modifier la structure d’une table. Dans cet exemple, elle ajoute une nouvelle colonne email à 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.

D
La commande TRUNCATE supprime toutes les lignes d’une table de manière rapide et efficace sans affecter 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.

B
Un curseur explicite est un curseur que l’utilisateur définit dans son code PL/SQL afin de récupérer et traiter plusieurs lignes d’une requête. Ce type de curseur est défini avec le mot-clé CURSOR, puis ouvert avec OPEN, parcouru avec FETCH, et enfin fermé avec CLOSE.

 

 
 

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.

A
Ce code utilise la commande INSERT INTO SELECT pour copier les données des employés du département 10 dans une autre 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.

A
La commande ROLLBACK annule les modifications effectuées dans la transaction en cours. Ainsi, le salaire des employés du département 30 ne sera pas mis à jour.

 

 

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;
A
La syntaxe correcte pour manipuler des exceptions dans un bloc PL/SQL utilise la structure BEGIN ... EXCEPTION ... END;. La section EXCEPTION permet de capturer et gérer les erreurs qui surviennent pendant l’exécution du bloc.

 

 
 

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;

D
Un tableau associatif en PL/SQL est une structure de données qui permet de stocker des paires clé-valeur. Il est déclaré avec INDEX BY, ce qui permet de spécifier que l’index est de type 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.

A
La commande EXECUTE IMMEDIATE est utilisée pour exécuter des instructions SQL dynamiques, c’est-à-dire des instructions SQL dont le contenu peut être défini au moment de l’exécution (par exemple, avec des variables ou des expressions). EXECUTE, en revanche, est utilisé pour exécuter des requêtes SQL statiques dont le contenu est fixe.

 

 

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.

A
Ce TRIGGER est déclenché après chaque mise à jour de la table employees. Il vérifie si le nouveau salaire est supérieur à 10 000 et affiche un message en conséquence.

 

 
 

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.

A
Un trigger BEFORE est exécuté avant qu’une opération DML (Data Manipulation Language) comme une INSERT, UPDATE ou DELETE ne soit effectuée sur une table. Il est couramment utilisé pour valider ou modifier des données avant que les modifications ne soient appliquées.

 

 

Laisser un commentaire

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