QCM PL/SQL Corrigé – Partie 17

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. Quelle est la différence entre SYSDATE et CURRENT_DATE en PL/SQL ?

A SYSDATE retourne la date et l’heure du système, tandis que CURRENT_DATE retourne la date et l’heure de la session.

B SYSDATE retourne la date et l’heure de la session, tandis que CURRENT_DATE retourne uniquement la date.

C SYSDATE et CURRENT_DATE sont identiques et ne diffèrent que par leur nom.

D SYSDATE ne prend pas en compte les fuseaux horaires, tandis que CURRENT_DATE les prend en compte.

A
SYSDATE retourne la date et l’heure du système du serveur de base de données, tandis que CURRENT_DATE retourne la date et l’heure de la session en tenant compte du fuseau horaire de l’utilisateur.

 

 

2. Quelle est la fonction du mot-clé WITH dans une requête SQL en PL/SQL ?

A Il permet de joindre plusieurs tables en une seule requête.

B Il permet de manipuler directement les données dans une table.

C Il permet de créer un index sur une table.

D Il permet de créer une sous-requête temporaire qui peut être utilisée plusieurs fois dans la même requête.

D
Le mot-clé WITH permet de définir des sous-requêtes communes dans une requête principale, ce qui améliore la lisibilité et les performances en réutilisant les mêmes sous-requêtes. Exemple :

WITH emp_dept AS (
   SELECT employee_id, department_id
   FROM employees
   WHERE department_id = 10
)
SELECT * FROM emp_dept;

 

 

3. Qu’est-ce qu’une collection en PL/SQL ?

A Un ensemble de variables de même type, permettant de stocker des valeurs dans un tableau ou une liste.

B Une table temporaire utilisée pour stocker des résultats d’une requête.

C Une procédure permettant de collecter les erreurs pendant l’exécution d’un bloc.

D Un ensemble de commandes SQL permettant d’effectuer des opérations de masse.

A
Une collection en PL/SQL (comme un tableau ou un enregistrement) est un type de structure de données permettant de stocker plusieurs éléments de même type sous une forme groupée.

 

 
 

4. Que fait la fonction TO_CHAR en PL/SQL ?

A Elle convertit une chaîne de caractères en un autre type de donnée.

B Elle convertit une date ou un nombre en une chaîne de caractères formatée.

C Elle extrait la partie numérique d’une chaîne de caractères.

D Elle vérifie si une chaîne de caractères est valide.

B
TO_CHAR permet de convertir une valeur de type DATE, NUMBER ou autre en une chaîne de caractères. On peut aussi spécifier un format pour la conversion. Exemple:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual;

 

 

5. Quelle est la différence entre les types NUMBER et FLOAT en PL/SQL ?

A FLOAT est un type de données réservé aux valeurs entières, tandis que NUMBER est utilisé pour les nombres à virgule flottante.

B NUMBER peut être utilisé pour représenter des valeurs entières et des nombres à virgule flottante, tandis que FLOAT est une sous-catégorie de NUMBER.

C NUMBER est réservé aux valeurs numériques sans décimales, tandis que FLOAT est utilisé pour les valeurs avec décimales.

D FLOAT est un type de données plus rapide et plus efficace que NUMBER.

B
En Oracle, NUMBER est un type de données polyvalent permettant de représenter à la fois des entiers et des nombres à virgule flottante. Le type FLOAT est une sous-catégorie de NUMBER, principalement utilisé pour des nombres flottants.

 

 

6. Quel est le rôle de la fonction CASE dans une requête SQL en PL/SQL ?

A Elle permet de réaliser des opérations arithmétiques complexes sur les données.

B Elle permet d’effectuer une comparaison entre plusieurs colonnes d’une table.

C Elle permet de renvoyer une valeur différente selon des conditions spécifiées.

D Elle permet de regrouper les résultats d’une requête en fonction de critères définis.

C
Le CASE permet d’effectuer une sorte de « structure conditionnelle » dans les requêtes SQL ou les blocs PL/SQL. Il renvoie des valeurs différentes en fonction des conditions. Exemple:

SELECT employee_id,
       CASE 
           WHEN salary > 5000 THEN 'High'
           WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium'
           ELSE 'Low'
       END AS salary_category
FROM employees;

 

 
 

7. Quel est le rôle du mot-clé RETURN dans une fonction PL/SQL ?

A Il arrête l’exécution d’une fonction et renvoie un résultat.

B Il arrête immédiatement l’exécution d’un bloc PL/SQL sans renvoyer de valeur.

C Il permet de retourner les données d’une table.

D Il permet d’initialiser une variable locale dans une fonction.

A
Dans une fonction PL/SQL, RETURN est utilisé pour renvoyer une valeur à l’appelant et terminer l’exécution de la fonction.

 

 

8. Quand utilise-t-on un curseur dans une procédure PL/SQL ?

A Lorsqu’un tableau de données doit être trié dans un ordre particulier.

B Lorsqu’une fonction doit retourner plusieurs valeurs.

C Lorsqu’une variable doit contenir une valeur constante pendant l’exécution.

D Lorsque vous souhaitez manipuler un ensemble de résultats ligne par ligne.

D
Les curseurs sont utilisés pour itérer sur un ensemble de résultats ligne par ligne dans PL/SQL. Un curseur peut être implicite ou explicite, en fonction des besoins de l’application.

 

 

9. Quel est l’objectif principal de la directive PRAGMA AUTONOMOUS_TRANSACTION en PL/SQL ?

A Elle permet d’effectuer des modifications dans une transaction autonome.

B Elle permet de traiter des erreurs dans une transaction.

C Elle permet de suspendre une transaction pour une durée déterminée.

D Elle permet de commencer une nouvelle transaction.

A
PRAGMA AUTONOMOUS_TRANSACTION permet d’exécuter une procédure de manière autonome, c’est-à-dire indépendamment de la transaction en cours. Les modifications effectuées dans cette transaction autonome peuvent être validées sans affecter la transaction principale.

 

 
 

10. Quelle est la principale différence entre BINARY_INTEGER et PLS_INTEGER en PL/SQL ?

A PLS_INTEGER et BINARY_INTEGER sont identiques.

B BINARY_INTEGER est plus performant pour les calculs complexes, tandis que PLS_INTEGER est plus adapté aux opérations simples.

C BINARY_INTEGER peut contenir des valeurs nulles, tandis que PLS_INTEGER ne peut pas.

D PLS_INTEGER est plus rapide que BINARY_INTEGER car il est optimisé pour l’architecture Oracle.

D
PLS_INTEGER est un type de données optimisé pour les opérations arithmétiques en PL/SQL et est plus rapide que BINARY_INTEGER. Bien que les deux types soient des entiers, PLS_INTEGER est le type recommandé pour la performance.

 

 

Laisser un commentaire

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