From 4b20a4bbc7b70815b74b7f4976d5ccc885f5fa24 Mon Sep 17 00:00:00 2001 From: frglazio Date: Wed, 17 Feb 2021 21:59:32 +0100 Subject: [PATCH] Upload New File --- QUIZZ/2020-BD_PLSQL_Cours-7_a_8-2.tex | 184 ++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 QUIZZ/2020-BD_PLSQL_Cours-7_a_8-2.tex diff --git a/QUIZZ/2020-BD_PLSQL_Cours-7_a_8-2.tex b/QUIZZ/2020-BD_PLSQL_Cours-7_a_8-2.tex new file mode 100644 index 0000000..e0c2f47 --- /dev/null +++ b/QUIZZ/2020-BD_PLSQL_Cours-7_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 EXCEPTION +\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 table 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 +\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 +\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} + +