From 397f232dc845dfac7b6b2fbee1cc935d398470b0 Mon Sep 17 00:00:00 2001 From: pascal Date: Sun, 24 Jan 2021 23:43:23 +0100 Subject: [PATCH] Quizz --- QUIZZ/2020-BD_PLSQL_Cours-1_a_6-3.tex | 192 ++++++++++++++++++++++++++ QUIZZ/2020-BD_PLSQL_Cours-2_a_8-2.tex | 184 ++++++++++++++++++++++++ 2 files changed, 376 insertions(+) create mode 100644 QUIZZ/2020-BD_PLSQL_Cours-1_a_6-3.tex create mode 100644 QUIZZ/2020-BD_PLSQL_Cours-2_a_8-2.tex diff --git a/QUIZZ/2020-BD_PLSQL_Cours-1_a_6-3.tex b/QUIZZ/2020-BD_PLSQL_Cours-1_a_6-3.tex new file mode 100644 index 0000000..002c4b6 --- /dev/null +++ b/QUIZZ/2020-BD_PLSQL_Cours-1_a_6-3.tex @@ -0,0 +1,192 @@ +\documentclass[12pt]{article} +%\usepackage{moodle} +\usepackage{sanssolmoodle} + + +\begin{document} + +\begin{quiz}{Quizz Cours 1, Chapitre 1 a 6.3} + + +\begin{multi}[multiple,points=1]{01-PL/SQL} +Que signifie PL/SQL ? +\item Petit language / Simplement Qualifi\'e Libre +\item* Procedural Language / Structured Query Language +\item Process Limited / Streaming Query Listener +\end{multi} + +\begin{multi}[points=1]{02-Fichier de commandes SQL} +Est-ce que l'utilitaire SQL permet aux utilisateurs d'ex\'ecuter un programme PL/SQL ? +\item* VRAI +\item FAUX +\end{multi} + +\begin{multi}[multiple, points=1]{03-Fichier de commandes SQL} +Que fait l'instruction ci-dessous ?\\ +variable vnoproduit CHAR(6) +\item d\'eclaration 6 variables appel\'ees vnoproduit de type cha\^ine de caract\`eres de longueur variable +\item* d\'eclaration d'une variable appel\'ee vnoproduit de type cha\^ine de caract\`eres de longueur 6 +\end{multi} + +\begin{multi}[multiple, points=1]{04-Fichier de commandes SQL} +Quels sont les formats autoris\'es pour les ''bind variable'' ? +\item NUMERIC +\item* NUMBER +\item* CHAR(n) +\item* VARCHAR2(n) +\item STRING +\end{multi} + +\begin{multi}[multiple, points=1]{05-Fichier de commandes SQL} +Quelle est la syntaxe correcte pour acc\`eder \`a la cha\^ine de caract\`eres stock\'ee dans la variable vnoproduit dans une requ\^ete SQL ? +\item SELECT * FROM tproduit WHERE Noproduit = vnoproduit; +\item* SELECT * FROM tproduit WHERE Noproduit = '\&vnoproduit'; +\item SELECT * FROM tproduit WHERE Noproduit = \&vnoproduit; +\item SELECT * FROM tproduit WHERE Noproduit = :vnoproduit; +\item SELECT * FROM tproduit WHERE Noproduit = ':vnoproduit'; +\end{multi} + +\begin{multi}[multiple, points=1]{06-Fichier de commandes SQL} +Quelles sont les commandes utilis\'ees pour interagir avec les utilisateurs ? +\item* PRINT +\item IMPRIME +\item* PROMPT +\item AFFICHE +\item* ACCEPT +\item ENREG +\end{multi} + +\begin{multi}[multiple, points=1]{07-Code PL/SQL} +Quelles sontt les affirmations justes ? +\item* En SQL les commandes sont transmises les unes apr\`es les autres et trait\'ees s\'epar\'ement par le moteur SQL +\item* En PL/SQL les blocs de commandes sont tranmis globalement au moteur SQL +\item En SQL et en PL/SQL les commandes sont transmises les unes apr\`es les autres et trait\'ees s\'epar\'ement par le moteur SQL +\item En SQL et en PL/SQL les commandes sont transmises en bloc au moteur SQL +\end{multi} + +\begin{multi}[points=1]{08-Programme PL/SQL} +Un programme PL/SQL type est-il compos\'e en 3 parties ?\\ +- Commandes SQL+ pour la saisie d'information\\ +- Bloc PL/SQL pour le traitement\\ +- Commandes SQL+ pour afficher le r\'esultat +\item* VRAI +\item FAUX +\end{multi} + +\begin{multi}[multiple, points=1]{09-Programme PL/SQL} +Identifiez les d\'efinition qui sont justes ? +\item* . : ce point indique la fin du mode PL/SQL +\item* / : d\'eclenche l'ex\'ecution du bloc PL/SQL +\item ; : ce point virgule indique la fin du mode PL/SQL +\item /* */ : d\'eclenche l'ex\'ecution du bloc PL/SQL +\end{multi} + +\begin{multi}[multiple, points=1]{10-Struture d'un bloc PL/SQL} +Identifiez les affirmations qui sont justes ? +\item Le bloc PL/SQL est compos\'e de 3 sections obligatoires +\item* la section BEGIN est obligatoire +\item* Les sections DECLARE et EXCEPTION sont facultatives +\item le ; en fin d'instruction est facultatif +\item* on signale les commentaires par /* */ ou - - en d\'ebut de ligne +\end{multi} + +\begin{multi}[multiple, points=1]{11-Type de variable en PL/SQL} +Quels sont les formats autoris\'es en PL/SQL ? +\item NUMERIC +\item* NUMBER +\item* CHAR(n) +\item* VARCHAR2(n) +\item STRING +\item* DATE +\end{multi} + +\begin{multi}[multiple, points=1]{12-Type de variable en PL/SQL} +Quelles sont les d\'eclaration de variable qui sont justes ? +\item* dnom VARCHAR2(50); +\item dnom CHAR(50) = 'Le nom r\'eel'; +\item* dnb NUMER := 0; +\item* dnom tproduit.nom \%type; +\item dnom tproduit.nom; +\end{multi} + +\begin{multi}[multiple, points=1]{13-Type de variable en PL/SQL} +Est-ce que l'on peut d\'eclarer un tableau en PL/SQL ? +\item* VRAI +\item FAUX +\end{multi} + +\begin{multi}[multiple,points=1]{14-Traitement du bloc BEGIN} +Quelle requ\^ete SQL est bien \'ecrite lorqu'elle est dans le bloc PL/SQL ? +\item SELECT designation FROM tProduit WHERE noProduit = 'P001'; +\item* SELECT designation into ddesignation FROM tProduit WHERE noProduit = 'P001'; +\end{multi} + +\begin{multi}[multiple, points=1]{15-Traitement du bloc BEGIN} +Quelles sont les requ\^etes ci-dessous qui s'ex\'ecuteront sans erreur ?\\ +Pour information : le produit P001 existe,\\ le produit P002 n'existe pas,\\ plusieurs produit ont un prix de vente \`a 15. +\item* SELECT designation into ddesignation FROM tProduit WHERE noProduit = 'P001'; +\item SELECT designation into ddesignation FROM tProduit WHERE noProduit = 'P002'; +\item SELECT designation into ddesignation FROM tProduit WHERE prixv = 15; +\end{multi} + +\begin{multi}[points=1]{16-Traitement du bloc BEGIN} +Les instruction SQL INSERT, UPDATE et DELETE ont aussi des changements pour s'ex\'ecuter dans un bloc PL/SQL ? +\item VRAI +\item* FAUX +\end{multi} + +\begin{multi}[multiple, points=1]{17-Traitement du bloc BEGIN} +Quels sont les op\'erateurs utilis\'es dans les conditions PL/SQL ? +\item == +\item* = +\item* != +\item += +\item* < > +\item \& +\item* IS NULL +\end{multi} + +\begin{multi}[points=1]{18-Traitement du bloc BEGIN} +Quelle est la bonne syntaxe pour le traitement conditionnel IF ? +\item je ne sais pas +\item* IF condition\\ +THEN\\ + instructions;\\ +END IF; +\item IF condition\\ + instructions;\\ +END; +\end{multi} + +\begin{multi}[multiple, points=1]{19-Traitement du bloc BEGIN} +Quelle est la bonne syntaxe pour le traitement conditionnel IF ? +\item je ne sais pas +\item* IF condition\\ +THEN\\ + instructions;\\ +ELSE\\ + instructions;\\ +END IF; +\item IF condition\\ + instructions;\\ +ELSE\\ + instructions;\\ +END; +\end{multi} + +\begin{multi}[multiple, points=1]{20-Traitement du bloc BEGIN} +Quelle est la bonne syntaxe pour une boucle WHILE ? +\item je ne sais pas +\item* WHILE condition\\ +LOOP\\ + instructions;\\ +END LOOP; +\item WHILE condition\\ + instructions;\\ +END WHILE; +\end{multi} + +\end{quiz} +\end{document} + + diff --git a/QUIZZ/2020-BD_PLSQL_Cours-2_a_8-2.tex b/QUIZZ/2020-BD_PLSQL_Cours-2_a_8-2.tex new file mode 100644 index 0000000..12c50ad --- /dev/null +++ b/QUIZZ/2020-BD_PLSQL_Cours-2_a_8-2.tex @@ -0,0 +1,184 @@ +\documentclass[12pt]{article} +%\usepackage{moodle} +\usepackage{sanssolmoodle} + + +\begin{document} + +\begin{quiz}{Quizz Cours 2, Chapitre 7 a 8.2} + + +\begin{multi}[multiple,points=1]{01-Gestion des erreurs} +Que se passe-t-il lorsqu'une instruction PL/SQL se passe mal ? +\item rien +\item* une exception est lev\'ee +\item le programme appelle un ami programme +\end{multi} + +\begin{multi}[points=1]{02-Gestion des erreurs} +O\`u est ce que l'on peut sp\'ecifier un comportement adapt\'e lorsqu'une erreur est lev\'ee ? +\item* dans la section ECEPTION +\item Nulle part +\item dans une section CATCH +\end{multi} + +\begin{multi}[multiple, points=1]{03-Gestion des erreurs} +Combien existe-t-il de types d'erreurs ? +\item plus de 2 +\item* 2 types, celle d'Oracle et celle d\'eclar\'ee par le d\'eveloppeur +\item qu'un seul et unique : le type erreur +\end{multi} + +\begin{multi}[multiple, points=1]{04-Gestion des erreurs} +O\`u se situe la section EXCEPTION par rapport aux autres ? +\item DECLARE EXCEPTION BEGIN +\item* DECLARE BEGIN EXCEPTION +\item EXCEPTION DECLARE BEGIN +\end{multi} + +\begin{multi}[multiple, points=1]{05-Gestion des erreurs} +O\`u doit-on initilialis\'e le message d'erreur possible li\'e \`a une requ\^ete SQL ? +\item Apr\`es la requ\^ete car avant on n'a pas l'erreur +\item* Avant la requ\^ete car s'il y a une erreur on n'ex\'ecute pas le code apr\`es la reque\^ete +\end{multi} + +\begin{multi}[multiple, points=1]{06-Gestion des erreurs} +Quelles sont les variables utilis\'ees pour documenter l'erreur ? +\item* SQLCODE +\item ERREUR +\item* SQLERRM +\item ERROR +\end{multi} + +\begin{multi}[multiple, points=1]{07-Gestion des erreurs} +Que se passe-t-il lors d'une erreur ? +\item* On ex\'ecute la section EXCEPTION puis on sort du traitement +\item On sort du programme sans ex\'ecuter la section EXCEPTION parce qu'on est en erreur +\item On ex\'ecute le code jusqu'\`a la section EXCEPTION puis celui de la section EXCEPTION puis on finit le traitement +\end{multi} + +\begin{multi}[multiple, points=1]{08-Gestion des erreurs} +Quels sont les couples code et description qui sont justes ? +\item* +100 - NO\_DATA\_FOUND +\item 0 - FATAL\_ERROR +\item* -1422 - TOO\_MANY\_ROWS +\item* -1 - DUP\_VAL\_ON\_INDEX +\item -666 - DEVIL\_ERROR +\end{multi} + +\begin{multi}[multiple, points=1]{09-Gestion des erreurs} +Que fait le code ci-dessous ?\\ +BEGIN\\ +INSERT INTO ttest (col1,col2,col3) VALUES (dcol1, dcol2, dcol3);\\ +EXCEPTION\\ +WHEN DUP\_VAL\_ON\_INDEX THEN\\ +INSERT INTO Tligne VALUES (dcol1 {\textbar}{\textbar} ' d\'ej\`a existant');\\ +END; +\item Il insert une ligne dans la ttest et insert une ligne dans la table Tligne +\item* Il insert une ligne dans la table ttest ou il insert une ligne dans la table Tligne +\item Il n'ins\'ere aucune ligne dans aucune table +\end{multi} + +\begin{multi}[multiple, points=1]{10-Gestion des erreurs} +Est ce que le code ci-dessous permet de bien g\'erer l'erreur utilisateur ?\\ +DECLARE\\ +nom\_erreur EXCEPTION;\\ +BEGIN\\ +IF 0 THEN\\ + RAISE nom\_erreur;\\ +END IF;\\ +EXCEPTION\\ +WHEN OTHERS THEN\\ +INSERT INTO Tligne VALUES('Erreur globale');\\ +WHEN nom\_erreur THEN\\ +INSERT INTO Tligne VALUES('nom\_Erreur');\\ +END; +\item VRAI +\item* FAUX +\end{multi} + +\begin{multi}[multiple, points=1]{11-Les curseurs} +Quel est le but d'utiliser un curseur plut\^ot qu'une requ\^ete simple ? +\item par ce qu'est plus facile +\item* pour lire le r\'esultat d'une requ\^ete dans le cas o\`u elle d\'elivre plusieurs lignes +\end{multi} + +\begin{multi}[multiple, points=1]{12-Les curseurs} +Quelle est la bonne syntaxe pour d\'eclarer un curseur ? +\item* CURSOR r IS SELECT codeRayon FROM trayon WHERE etage = detage; +\item CURSOR r IS SELECT codeRayon INTO dcodeRayon FROM trayon WHERE etage = detage; +\item CURSOR SELECT codeRayon FROM trayon WHERE etage = detage; +\end{multi} + +\begin{multi}[multiple, points=1]{13-Les curseurs} +Que fait l'instruction OPEN du curseur ? +\item* Elle ex\'ecute la req\^ete et stocke le r\'esultat dans la variable curseur r +\item Elle ferme le curseur +\end{multi} + +\begin{multi}[multiple, points=1]{14-Les curseurs} +Quelle est la bonne syntaxe de l'instruction FETCH du curseur ci-dessous ?\\ +CURSOR r IS SELECT codeRayon, etage FROM trayon WHERE etage = detage; +\item FETCH r INTO dcodeRayon; +\item FETCH r; +\item* FETCH r INTO dcodeRayon, detage; +\end{multi} + +\begin{multi}[multiple, points=1]{15-Les curseurs} +Comment sait-on s'il reste des donn\'ees \`a lire dans le curseur ? +\item On ne peut pas le savoir +\item* avec la variable nom\_curseur\%FOUND +\item avec SQLCODE et SQLERRM +\end{multi} + +\begin{multi}[multiple, points=1]{16-Les curseurs} +Quelle boucle ci-dessous permet de lire tous les enregistrements d'un curseur ? +\item WHILE r\%FOUND\\ +LOOP\\ +instructions;\\ +END LOOP; +\item* WHILE r\%FOUND\\ +LOOP\\ +instructions;\\ +FETCH r INTO dcodeRayon,detage;\\ +END LOOP; +\end{multi} + +\begin{multi}[multiple, points=1]{17-Les curseurs} +Que fait l'instruction CLOSE du curseur ? +\item Elle ex\'ecute la req\^ete et stocke le r\'esultat dans la variable curseur r +\item* Elle ferme le curseur +\end{multi} + +\begin{multi}[multiple, points=1]{18-Les curseurs} +Quelle est la bonne syntaxe pour traiter le cas o\`u il n'y a aucun enregistrement ? +\item je ne sais pas +\item* IF NOT r\%FOUND +\item* IF r\%NOTFOUND +\item IF r IS NULL +\item IF r = '' +\end{multi} + +\begin{multi}[multiple, points=1]{19-Les curseurs} +Peut-on mettre \`a jour la ligne courante du curseur ? +\item* VRAI +\item FAUX +\end{multi} + +\begin{multi}[multiple, points=1]{20-Les curseurs} +Quelle est la bonne syntaxe pour mettre \`a jour la ligne courante du curseur ? +\item je ne sais pas +\item CURSOR r IS SELECT codeRayon FROM trayon;\\ +OPEN r;\\ +FETCH r INTO dcodeRayon;\\ +UPDATE trayon SET nomRayon = dnomRayon WHERE CURRENT OF r; +\item* CURSOR r IS SELECT codeRayon FROM trayon FOR UPDATE;\\ +OPEN r;\\ +FETCH r INTO dcodeRayon;\\ +UPDATE trayon SET nomRayon = dnomRayon WHERE CURRENT OF r; +\end{multi} + +\end{quiz} +\end{document} + +