\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}


