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

B
Dans un bloc PL/SQL, pour empêcher qu’une exception ne se propage à l’extérieur du bloc, il suffit de la capturer dans la partie EXCEPTION et de ne pas utiliser de commande pour la lever à nouveau (avec RAISE).

 

 

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.

C
La commande SET SERVEROUTPUT ON permet d’activer l’affichage des messages générés par DBMS_OUTPUT.PUT_LINE dans SQL*Plus ou un autre client PL/SQL. Le message « Hello, World! » sera affiché dans la sortie du client.

 

 

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.

A
Le mot-clé REVERSE inverse l’ordre de la boucle FOR. Au lieu de commencer à 1 et finir à 5, le compteur commence à 5 et descend jusqu’à 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

B
La commande PRAGMA EXCEPTION_INIT est utilisée en PL/SQL pour associer un numéro d’erreur spécifique à une exception nommée. Cela permet de capturer des erreurs spécifiques et de les traiter avec des exceptions personnalisées dans le bloc PL/SQL.

 

 

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.

D
L’instruction ALTER SESSION est utilisée pour modifier certains paramètres d’une session en cours dans Oracle. Cela permet de changer des options de configuration, comme la langue, le format de date, ou encore les paramètres de performance, sans avoir à redémarrer la session ou la base de données.

 

 

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.

A
La clause RETURNING INTO permet de récupérer la valeur mise à jour de la colonne salary et de l’afficher ensuite à l’aide de DBMS_OUTPUT.PUT_LINE.

 

 
 

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.

A
Le code utilise SELECT INTO pour récupérer le nombre d’employés dans le département 10 et l’affiche avec DBMS_OUTPUT.PUT_LINE.

 

 

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

B
En PL/SQL, pour récupérer la première ligne d’une table, vous pouvez utiliser une requête SELECT INTO avec la clause ROWNUM = 1. Cela permet de sélectionner une seule ligne de la table, généralement la première ligne retournée par la requête.

 

 

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.

C
La commande ROLLBACK TO SAVEPOINT permet d’annuler uniquement les modifications effectuées après un SAVEPOINT spécifié, tout en conservant les modifications effectuées avant ce savepoint. Un SAVEPOINT est un point de restauration dans une transaction, permettant de revenir en arrière à un état antérieur sans annuler entièrement toute la transaction.

 

 
 

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;

B
En PL/SQL, pour créer une table temporaire, vous utilisez l’instruction CREATE GLOBAL TEMPORARY TABLE. Les données de cette table sont temporaires et ne sont visibles que pour la session qui les a créées. Elles seront automatiquement supprimées à la fin de la session ou de la transaction, selon la définition de la table.

 

 

Laisser un commentaire

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