QCM PL/SQL Corrigé – Partie 8

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. Les curseurs implicites sont créés afin de traiter les déclarations ____.

A TCL

B DML

C DCL

D DDL

B
Les curseurs implicites sont créés afin de traiter les instructions DML telles que INSERT, DELETE, UPDATE, etc.

 

 

2. Lequel des éléments suivants est un attributs du curseur implicite ?

A %FOUND

B %ROWCOUNT

C %ISOPEN

D Tous les attributs ci-dessus

D
%FOUND, %ROWCOUNT, %OPEN et %NOTFOUND sont tous des attributs du curseur implicite.

 

 

3. Qu’est-ce qui est VRAI à propos de %FOUND ?

A Si une instruction DML, telle que INSERT, DELETE ou UPDATE, affecte une ou plusieurs lignes, ou si une instruction SELECT INTO renvoie au moins une ligne, cette méthode renvoie TRUE.

B L’instruction SELECT INTO ou les instructions DML telles que INSERT, DELETE et UPDATE n’affectent aucune ligne.

C Les curseurs SQL étant automatiquement fermés après l’exécution des instructions SQL qui leur sont associées, la fonction renvoie toujours FALSE pour les curseurs implicites.

D Les résultats sont renvoyés pour les instructions DML telles que INSERT, DELETE et UPDATE, ou pour ceux renvoyés par une commande SELECT INTO.
 
 

A
%FOUND. Cet attribut a quatre valeurs :

  • NULL avant la première récupération
  • TRUE si un enregistrement a été récupéré avec succès
  • FALSE si aucun enregistrement n’a été récupéré
  • INVALID_CURSOR si le curseur n’est pas ouvert

Exemple:

DECLARE  
   total_rows number(3); 
BEGIN 
   UPDATE students 
   SET note = note + 5; 
   IF sql%NOTFOUND THEN 
      dbms_output.put_line('No students selected!'); 
   ELSIF sql%FOUND THEN 
      total_rows := sql%ROWCOUNT;
      dbms_output.put_line( total_rows || ' Students selected '); 
   END IF;  
END; 
/

 

 

4. Qu’est-ce qui est VRAI à propos de %ISOPEN ?

A Si une instruction DML, telle que INSERT, DELETE ou UPDATE, affecte une ou plusieurs lignes, ou si une instruction SELECT INTO renvoie au moins une ligne, cette méthode renvoie TRUE.

B L’instruction SELECT INTO ou les instructions DML telles que INSERT, DELETE et UPDATE n’affectent aucune ligne.

C Les curseurs SQL étant automatiquement fermés après l’exécution des instructions SQL qui leur sont associées, la fonction renvoie toujours FALSE pour les curseurs implicites.

D Les résultats sont renvoyés pour les instructions DML telles que INSERT, DELETE et UPDATE, ou pour ceux renvoyés par une commande SELECT INTO.

C
Si un curseur est ouvert, cursor_name%ISOPEN renvoie TRUE; sinon, il renvoie FALSE. Exemple:

IF (NOT myCursor%ISOPEN) THEN
	OPEN myCursor;
END IF;

 

 

5. Qu’est-ce qui est VRAI à propos de %ROWCOUNT ?

A Si une instruction DML, telle que INSERT, DELETE ou UPDATE, affecte une ou plusieurs lignes, ou si une instruction SELECT INTO renvoie au moins une ligne, cette méthode renvoie TRUE.

B L’instruction SELECT INTO ou les instructions DML telles que INSERT, DELETE et UPDATE n’affectent aucune ligne.

C Les curseurs SQL étant automatiquement fermés après l’exécution des instructions SQL qui leur sont associées, la fonction renvoie toujours FALSE pour les curseurs implicites.

D Les résultats sont renvoyés pour les instructions DML telles que INSERT, DELETE et UPDATE, ou pour ceux renvoyés par une commande SELECT INTO.

D
Lorsqu’un curseur est ouvert, %ROWCOUNT est mis à zéro. Avant la première récupération, cursor_name%ROWCOUNT renvoie 0. Ensuite, il renvoie le nombre de lignes récupérées au cours de l’opération. Le nombre est incrémenté si la dernière extraction a retourné une ligne.

 

 

6. Les curseurs explicites sont définis dans la section ___________.

A BEGIN

B DECLARE

C END

D Aucune de ces réponses

B
Les curseurs explicites sont définis dans la section « DECLARE ». Exemple:

DECLARE

CURSOR emp_curor IS 

SELECT * 

FROM emp_table

WHERE salary > 2000;

 

 
 

7. Sur les instructions _______, les curseurs explicites retournent plus d’une ligne.

A UPDATE

B SELECT

C CREATE

D DELETE

B
Sur les instructions SELECT, les curseurs explicites retournent plus d’une ligne.

 

 

8. Lequel des éléments suivants est la syntaxe correcte pour créer un curseur explicite?

A CURSOR cursor_name IS select_statement;

B CURSOR cursor_name select_statement IS;

C CURSOR select_statement IS cursor_name;

D IS select_statement cursor_name CURSOR;

A
La syntaxe correcte pour créer un curseur explicite est:

CURSOR cursor_name IS select_statement;

 

 

9. Sélectionnez l’ordre correct des 4 étapes ci-dessous pour utiliser un curseur explicite.

A Déclarer le curseur à initialiser en mémoire.

B Allouer la mémoire en ouvrant le curseur.

C Récupérer les données.

D Libérer la mémoire allouée en fermant le curseur.
 
 

A > B > C > D
L’ordre correct dans lequel les 4 étapes seront effectuées pour le fonctionnement du curseur explicite est:

  1. Déclarer le curseur à initialiser en mémoire.
  2. Allouer la mémoire en ouvrant le curseur.
  3. Récupérer les données.
  4. Libérer la mémoire allouée en fermant le curseur.

Syntaxe:

DECLARE
CURSOR <cursor_name> IS <SELECT statement^>
<cursor_variable>
BEGIN
OPEN <cursor_name>;
FETCH <cursor_name> INTO <cursor_variable>;
...
CLOSE <cursor_name>;
END;

 

 

10. Lequel des éléments suivants est la syntaxe correcte pour récupérer les enregistrements de votre curseur ?

A FETCH cursor_name INTO variable_list;

B FETCH variable_list INTO cursor_name;

C INTO cursor_name FETCH variable_list;

D INTO variable_list FETCH cursor_name;

A
La syntaxe correcte pour récupérer les enregistrements de votre curseur:

FETCH cursor_name INTO variable_list;

 

 

Laisser un commentaire

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