\documentclass[12pt]{article}
\usepackage{moodle}
%\usepackage{sanssolmoodle}


\begin{document}

\begin{quiz}{Quizz Cours PL/SQL, Chapitre 1 a 8.2}


\begin{multi}[points=1]{01-Syntaxe}
La d\'eclaration ci-dessous est-elle juste ?\\
DECLARE\\
   dIdentifiant NUMBER(4) ;
\item* VRAI
\item FAUX
\end{multi}

\begin{multi}[points=1]{02-Syntaxe}
La d\'eclaration ci-dessous est-elle juste ?\\
DECLARE\\
   ID, NoID, Test VARCHAR2(10) ;
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{03-Syntaxe}
La d\'eclaration ci-dessous est-elle juste ?\\
DECLARE\\
   dEnStock NUMBER(4) = 1 ;
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{04-Syntaxe}
La traitement ci-dessous est-il juste ?\\
BEGIN\\
   dToto := ':vTotoSaisie';
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{05-Syntaxe}
Le traitement ci-dessous est-il juste ?\\
BEGIN\\
   SELECT colonne FROM TableDeLaBase WHERE colonne2 = 'valeur';
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{06-Syntaxe}
Le traitement ci-dessous est-il juste ?\\
BEGIN\\
         WHILE r\%FOUND\\
         LOOP\\
INSERT INTO tligne VALUES (CONCAT('Valeur :' , TO\_CHAR(i))) ;\\
i := i + 1;\\
         END LOOP;
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{07-Syntaxe}
Le traitement ci-dessous est-il juste ?\\
BEGIN\\
         IF monTest = maVariable THEN\\
	 RAISE monErreur ;
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{08-Syntaxe}
Le traitement ci-dessous est-il juste ?\\
EXCEPTION\\
         WHEN OTHERS THEN\\
INSERT INTO tligne VALUES (SQLERRM); 
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{09-SQL}
Combien faut-il de conditions de jointures entre N tables pour \'eviter un produit cart\'esien? ?
\item 0  
\item N+1
\item* N-1
\item N
\end{multi}

\begin{multi}[multiple, points=1]{10-SQL}
Quelle fonction ram\`ene toujours un enregistrement ?
\item SUBSTR
\item CONCAT
\item ROUND
\item* COUNT
\end{multi}

\begin{multi}[multiple, points=1]{11-Les curseurs}
Comment savoir si on a lu des donn\'ees d'un curseur nomm\'e Curs ?
\item Curs IS NOT NULL
\item* Curs\%FOUND
\item* NOT Curs\%NOTFOUND
\item Curs != ''
\end{multi}

\begin{multi}[multiple, points=1]{12-Les curseurs}
Est-il possible de mettre \`a jour un curseur durant sa lecture ?
\item* VRAI
\item FAUX
\end{multi}

\begin{multi}[multiple, points=1]{13-Les curseurs}
Que peut retourner un curseur sans lever d'exception ?
\item* aucune ligne 
\item* une ligne
\item* plusieurs lignes
\end{multi}

\begin{multi}[multiple, points=1]{14-Variable}
Dans quelles sections peut-\^etre utilis\'ee une variable SQL+ ?
\item* section SQL+ avant un bloc PL/SQL 
\item* bloc PL/SQL
\item* section SQL+ apr\`es un bloc PL/SQL
\end{multi}

\begin{multi}[multiple, points=1]{15-Variable}
Dans quelles sections peut-\^etre utilis\'ee une variable PL/SQL ?
\item section SQL+ avant un bloc PL/SQL 
\item* bloc PL/SQL
\item section SQL+ apr\`es un bloc PL/SQL
\end{multi}

\begin{multi}[multiple, points=1]{16-Affichage}
Quelles sont les possibilit\'es pour afficher le r\'esultat d'un traitement ?
\item Variable PL/SQL
\item* Variable SQL+
\item* Table d\'eclar\'ee dans la section SQL+
\item* Table d\'eclar\'es dans le bloc PL/SQL
\end{multi}

\begin{multi}[multiple, points=1]{17-Les curseurs}
Quels mot cl\'es servent pour g\'erer les Exceptions ?
\item CURSOR 
\item* EXCEPTION
\item* RAISE
\item* WHEN
\item IS
\end{multi}

\begin{multi}[multiple, points=1]{18-Les curseurs}
Comment identifier que l'on n'a pas de donn\'ees pour une requ\^ete ?
\item je ne sais pas
\item* SQLCODE = +100
\item* NO\_DATA\_FOUND
\item TOO\_MANY\_ROWS
\end{multi}

\begin{multi}[multiple, points=1]{19-EXCEPTION}
La requ\^ete suivante ins\'ere le code erreur et le message de la requ\^ete pr\'ec\'edente en erreur ?\\
INSERT INTO TLigne (NumCodeErr, MessageErr) VALUES (SQLCODE, SQLERRM);
\item VRAI
\item* FAUX
\end{multi}

\begin{multi}[multiple, points=1]{20-Les curseurs}
Peut-on avoir plusieurs requ\^etes qui lèvent le même type d'erreur dans un traitement ?
\item* VRAI
\item FAUX
\end{multi}

\end{quiz}
\end{document}


