QCM PL/SQL Corrigé – Partie 26

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 ?
DECLARE
   v_today DATE;
BEGIN
   v_today := SYSDATE;
   DBMS_OUTPUT.PUT_LINE('Today\'s date: ' || TO_CHAR(v_today, 'DD-MON-YYYY'));
END;

A Il affiche la date du jour dans le format « DD-MON-YYYY ».

B Il génère une erreur car SYSDATE ne peut pas être utilisé de cette manière.

C Il affiche la date de création de la table employees.

D Il affiche l’heure du jour, mais pas la date.

A
SYSDATE récupère la date et l’heure actuelles du système. Le format TO_CHAR est utilisé pour afficher cette date au format DD-MON-YYYY.

 

 

2. Quelle est l’instruction pour afficher un message dans la console PL/SQL ?

A SHOW MESSAGE;

B PRINT

C DBMS_OUTPUT.PUT_LINE;

D OUTPUT MESSAGE;

C
En PL/SQL, pour afficher un message dans la console, on utilise la procédure DBMS_OUTPUT.PUT_LINE;. Cela permet d’afficher du texte ou des valeurs à la sortie de la session PL/SQL.

 

 

3. Quelle est la différence entre une « vue » et une « table » en PL/SQL ?

A Une vue ne contient aucune donnée réelle, elle est dynamique.

B Une vue contient des données permanentes, contrairement à une table.

C Une table ne peut être utilisée dans une requête SQL.

D Une vue ne peut être mise à jour, mais une table oui.

A
  • Une vue est une représentation virtuelle d’une table. Elle ne contient pas de données réelles, mais plutôt une requête SQL qui est exécutée chaque fois que la vue est utilisée. Les données affichées par la vue sont donc dynamiques et dépendent des données actuelles dans les tables sous-jacentes.
  • Une table, en revanche, contient des données réelles et persistantes dans la base de données.

 

 
 

4. Que fait le code PL/SQL suivant ?
DECLARE
   v_name employees.first_name%TYPE;
BEGIN
   SELECT first_name INTO v_name 
   FROM employees 
   WHERE employee_id = 9999;
   DBMS_OUTPUT.PUT_LINE('Employee Name:' || NVL(v_name, 'Unknown'));
END;

A Il affiche le prénom de l’employé avec l’ID 9999 ou « Unknown » si l’employé n’existe pas.

B Il génère une erreur car l’employé avec l’ID 9999 n’est pas trouvé dans la table.

C Il affiche « Employee Name: Unknown » même si l’employé existe.

D Il affiche « Employee Name: NULL » si l’employé n’existe pas.

A
La fonction NVL est utilisée pour remplacer la valeur NULL par la valeur spécifiée, ici « Unknown », dans le cas où l’employé n’existe pas.

 

 

5. Que fait le code PL/SQL suivant ?
BEGIN
   INSERT INTO employees (employee_id, first_name, last_name)
   VALUES (1001, 'John', 'Doe');
EXCEPTION
   WHEN DUP_VAL_ON_INDEX THEN
      DBMS_OUTPUT.PUT_LINE('Duplicate value error');
END;

A Il affiche « Duplicate value error » si un doublon d’ID d’employé est détecté.

B Il insère l’employé John Doe dans la table employees, mais génère une erreur pour l’ID 1001.

C Il insère un employé avec l’ID 1001, mais ne génère aucune erreur.

D Il génère une erreur car l’exception DUP_VAL_ON_INDEX ne peut pas être utilisée dans ce cas.

A
Si l’ID 1001 existe déjà dans la table employees, l’exception DUP_VAL_ON_INDEX est levée, et le message « Duplicate value error » est affiché.

 

 

6. Que fait le code PL/SQL suivant ?
BEGIN
   EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT = ''YYYY-MM-DD''';
   DBMS_OUTPUT.PUT_LINE('Date format changed');
END;

A Il n’a aucun effet, car le format de la date ne peut pas être modifié.

B Il génère une erreur car la commande ALTER SESSION ne peut pas être utilisée dans un bloc PL/SQL.

C Il change le format de la date pour toutes les sessions de la base de données.

D Il modifie le format de la date pour la session actuelle et affiche « Date format changed ».

D
La commande ALTER SESSION modifie les paramètres de la session courante, ici le format de la date. L’instruction EXECUTE IMMEDIATE permet d’exécuter la commande SQL dynamique.

 

 
 

7. Quel est l’avantage principal d’utiliser des curseurs en PL/SQL ?

A Ils permettent de traiter des requêtes SQL en masse sans gérer des résultats.

B Ils permettent de gérer un ensemble de lignes de manière itérative dans un bloc PL/SQL.

C Ils optimisent la vitesse de traitement des données.

D Ils n’ont aucun effet sur la gestion des données.

B
Les curseurs permettent de traiter les résultats d’une requête ligne par ligne, ce qui est utile pour manipuler ou analyser des données de manière itérative dans PL/SQL.

 

 

8. Comment définir un type de données personnalisé en PL/SQL ?

A CREATE TYPE

B TYPE <nom> AS <type_de_donnée>

C DEFINE TYPE

D TYPE <nom> IS <type_de_donnée>

D
En PL/SQL, pour définir un type de données personnalisé, on utilise la syntaxe suivante: TYPE <nom> IS <type_de_donnée> Par exemple, pour définir un type de données personnalisé pour un tableau de nombres, on peut écrire: TYPE Tab_Numbers IS TABLE OF NUMBER;

 

 

9. Que fait le code PL/SQL suivant ?
DECLARE
   v_value1 INT := 10;
   v_value2 INT := 10;
BEGIN
   DBMS_OUTPUT.PUT_LINE('Result: ' || NULLIF(v_value1, v_value2));
END;

A Il affiche « Result: NULL ».

B Il affiche « Result: 10 ».

C Il génère une erreur car NULLIF ne peut pas être utilisé avec des entiers.

D Il affiche « Result: 0 ».

A
La fonction NULLIF renvoie NULL si les deux valeurs comparées sont égales. Ici, v_value1 et v_value2 sont égaux (10), donc le résultat est NULL.

 

 
 

10. Que fait le code PL/SQL suivant ?
DECLARE
   v_date DATE;
BEGIN
   v_date := TO_DATE('2025-03-12', 'YYYY-MM-DD');
   DBMS_OUTPUT.PUT_LINE('Formatted Date: ' || TO_CHAR(v_date, 'DD-MON-YYYY'));
END;

A Il affiche la date « 12-MAR-2025 ».

B Il génère une erreur car TO_DATE et TO_CHAR ne peuvent pas être utilisés ensemble.

C Il affiche « 2025-03-12 » comme format de date.

D Il affiche une erreur car la date ‘2025-03-12’ ne correspond pas au format.

A
La fonction TO_DATE convertit une chaîne en une date avec le format spécifié. Ensuite, TO_CHAR est utilisé pour afficher la date dans le format « DD-MON-YYYY ». Le résultat affiché est « 12-MAR-2025 ».

 

 

Laisser un commentaire

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