QCM PL/SQL Corrigé – Partie 15

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 permet de faire l’expression IS NULL en PL/SQL ?

A Vérifier si une variable contient une valeur numérique.

B Vérifier si une variable contient une chaîne vide.

C Vérifier si une variable est égale à zéro.

D Vérifier si une variable contient la valeur NULL.

D
L’expression IS NULL est utilisée pour vérifier si une variable a la valeur NULL. Par exemple:

IF my_variable IS NULL THEN
   -- traitement si la variable est NULL
END IF;

 

 

2. Que fait l’instruction TRUNC en PL/SQL ?

A Elle tronque une chaîne de caractères à une longueur spécifiée.

B Elle arrondit un nombre à un nombre entier.

C Elle supprime des lignes de données dans une table.

D Elle arrondit une date à la date précédente.

A
En PL/SQL, la fonction TRUNC est utilisée pour tronquer un nombre ou une date. Pour les dates, elle supprime les informations sur l’heure, et pour les nombres, elle élimine les décimales sans les arrondir.

 

 

3. Que permet de faire l’instruction WITH en PL/SQL ?

A Créer une sous-requête qui peut être utilisée dans la requête principale.

B Modifier les données dans une table.

C Créer une vue temporaire.

D Déclarer des variables dans un bloc PL/SQL.

A
L’instruction WITH permet de définir une sous-requête dans une requête principale. Cela permet de rendre les requêtes plus lisibles et réutilisables. Exemple:

WITH department_totals AS (
   SELECT department_id, SUM(salary) AS total_salary
   FROM employees
   GROUP BY department_id
)
SELECT * FROM department_totals;

 

 
 

4. Quelle est la commande correcte pour ajouter une colonne à une table existante en PL/SQL ?

A ALTER TABLE table_name ADD column_name datatype;

B ALTER TABLE table_name MODIFY column_name datatype;

C ALTER TABLE table_name REMOVE column_name;

D ALTER TABLE table_name RENAME column_name TO new_column_name;

A
L’instruction ALTER TABLE permet de modifier une table existante. Pour ajouter une nouvelle colonne, on utilise la syntaxe suivante:

ALTER TABLE employees ADD hire_date DATE;

 

 

5. A qui sert la fonction DECODE en PL/SQL ?

A Elle permet de remplacer les valeurs NULL par une valeur spécifique.

B Elle permet de réaliser une opération conditionnelle, similaire à un IF dans une requête.

C Elle permet de fusionner des colonnes dans une table.

D Elle permet d’encoder des valeurs en fonction d’un format spécifique.

B
La fonction DECODE est utilisée pour effectuer une comparaison conditionnelle dans une requête SQL. Elle fonctionne de manière similaire à une instruction IF-ELSE dans un langage de programmation. Exemple:

SELECT DECODE(department_id, 10, 'Sales', 'Other') FROM employees;

Cela retourne ‘Sales’ si department_id est égal à 10, sinon ‘Other’.

 

 

6. Quel est l’objectif de l’instruction CREATE INDEX en PL/SQL ?

A Créer une vue sur une table.

B Créer un index sur une ou plusieurs colonnes d’une table pour améliorer la performance des requêtes.

C Modifier la structure d’une table.

D Créer une contrainte d’intégrité sur une colonne.

B
L’instruction CREATE INDEX est utilisée pour créer un index sur une ou plusieurs colonnes d’une table. Cela permet d’accélérer les requêtes de sélection qui utilisent ces colonnes dans leurs conditions. Exemple:

CREATE INDEX idx_emp_salary ON employees(salary);

 

 
 

7. Est-il possible de déclarer un curseur pour exécuter plusieurs requêtes dans PL/SQL ?

A Non, un curseur ne peut exécuter qu’une seule requête.

B Oui, mais les requêtes doivent être identiques.

C Oui, il est possible de déclarer un curseur pour exécuter plusieurs requêtes différentes.

D Oui, mais uniquement dans les fonctions.

A
Un curseur en PL/SQL est conçu pour exécuter une seule requête à la fois. Si vous avez besoin d’exécuter plusieurs requêtes, vous devez créer plusieurs curseurs ou exécuter les requêtes séparément.

 

 

8. Quel est l’objectif d’une variable de type OUT dans une procédure PL/SQL ?

A Elle permet de stocker la valeur d’une fonction.

B Elle permet de passer des valeurs de l’extérieur vers la procédure.

C Elle permet de renvoyer des valeurs de la procédure vers l’extérieur.

D Elle permet de définir des variables dans un bloc DECLARE.

C
Les paramètres de type OUT dans une procédure PL/SQL permettent de renvoyer des valeurs à l’appelant après l’exécution de la procédure. Par exemple:

CREATE PROCEDURE get_emp_salary (emp_id IN NUMBER, salary OUT NUMBER) AS
BEGIN
  SELECT salary INTO salary FROM employees WHERE id = emp_id;
END;

 

 

9. Quelle est l’utilisation principale de l’instruction RETURNING INTO en PL/SQL ?

A Récupérer la valeur générée par une requête SELECT INTO.

B Récupérer une ou plusieurs valeurs générées par une requête INSERT, UPDATE, ou DELETE.

C Récupérer la valeur d’une variable après une opération.

D Récupérer les résultats d’une requête de type JOIN.

B
L’instruction RETURNING INTO permet de récupérer les valeurs d’une colonne après une opération INSERT, UPDATE ou DELETE. Par exemple :

DECLARE
   v_employee_id employees.employee_id%TYPE;
BEGIN
   INSERT INTO employees (name, job) 
   VALUES ('John', 'Developer')
   RETURNING employee_id INTO v_employee_id;
   DBMS_OUTPUT.PUT_LINE('New Employee ID: ' || v_employee_id);
END;

 

 
 

10. Quand est-il approprié d’utiliser un curseur implicite en PL/SQL ?

A Lorsqu’une requête SELECT retourne plusieurs lignes.

B Lorsqu’une requête SELECT INTO retourne une seule ligne.

C Lorsqu’une requête INSERT affecte une seule ligne.

D Lorsqu’une requête UPDATE affecte plusieurs lignes.

B
Un curseur implicite est automatiquement créé pour des requêtes qui retournent une seule ligne, comme celles qui utilisent SELECT INTO pour récupérer une seule valeur. Cela simplifie le code en évitant d’avoir à déclarer et gérer un curseur explicitement.

 

 

Laisser un commentaire

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