diff --git a/COURS/PLSQL.tex b/COURS/PLSQL.tex index 57fae05..4a6d6d1 100644 --- a/COURS/PLSQL.tex +++ b/COURS/PLSQL.tex @@ -718,7 +718,7 @@ UPDATE table SET col2 = var1 WHERE col1 = var2; \begin{exercice} Calculer le nombre de fournisseurs d’un produit entr\'e par l'utilisateur. Le résultat sera écrit dans une table -\code{Tlignes}. Les tables utilis\'ees sont donn\'ees dans la +\code{Tligne}. Les tables utilis\'ees sont donn\'ees dans la Figure~\ref{fig:bd}. \end{exercice} @@ -737,7 +737,7 @@ BEGIN SELECT COUNT(*) INTO dbfournisseurs FROM WHERE noproduit = \&vnoproduit; -INSERT INTO Tlignes VALUES('Le nombre de fournisseur du produit' +INSERT INTO Tligne VALUES('Le nombre de fournisseur du produit' ||\&vnoproduit||' est '|| dnbfournisseurs); END; @@ -745,7 +745,7 @@ END; . / -SELECT * FROM Tlignes; +SELECT * FROM Tligne; } \subsection{Traitements conditionnels \code{IF ... THEN ... END IF;}} @@ -767,7 +767,7 @@ La syntaxe pour \'ecrire une condition est la suivante : \begin{exercice} Calculer le nombre de fournisseurs d’un produit donné. S’il n’y a pas de fournisseur, compter le nombre de produits : il doit être $\geq 1$ -ou 0. \'Ecrire dans une table de \code{Tlignes} soit le nombre de +ou 0. \'Ecrire dans une table de \code{Tligne} soit le nombre de fournisseurs soit le message ‘\code{le produit n’existe pas}’. \end{exercice} @@ -795,11 +795,11 @@ IF dnbfournisseurs = 0 THEN END IF; - IF dnbproduit = 0 THEN INSERT INTO Tlignes VALUES('Pas de produit'||'\&vnoproduit'); + IF dnbproduit = 0 THEN INSERT INTO Tligne VALUES('Pas de produit'||'\&vnoproduit'); ELSE -INSERT INTO Tlignes VALUES('Le nombre de fournisseur du produit' +INSERT INTO Tligne VALUES('Le nombre de fournisseur du produit' ||'\&vnoproduit'||' est '|| dnbfournisseur); END IF; @@ -809,7 +809,7 @@ END; . / -SELECT * FROM Tlignes; +SELECT * FROM Tligne; } \subsection{Traitements répétitifs \code{WHILE ...LOOP ...END LOOP;}} @@ -829,7 +829,7 @@ La condition est une combinaison d'expressions au moyen d'opérateurs : \begin{exemple}Calcul de factorielle. \begin{verbatim} -CREATE TABLE tligne (ligne VARCHAR2(200)); +CREATE TABLE Tligne (ligne VARCHAR2(200)); VARIABLE n NUMBER PROMPT taper n ACCEPT n @@ -845,12 +845,12 @@ BEGIN fn := fn * i; END LOOP; - INSERT INTO tligne + INSERT INTO Tligne VALUES ( 'Factorielle de '|| TO_CHAR(n)||, ‘ ‘,TO_CHAR(fn)); END; / -SELECT * FROM tligne; -DROP TABLE tligne; +SELECT * FROM Tligne; +DROP TABLEl Tligne; \end{verbatim} \end{exemple} @@ -868,10 +868,10 @@ Les types d'erreurs sont les suivants : \begin{exemple} Les résultats à afficher sont placés dans -une table \code{tligne}. +une table \code{Tligne}. \begin{verbatim} -create table tligne ( ligne varchar2(150)); +create table Tligne (Tligne varchar2(150)); variable vnoproduit char(4) prompt taper la référence du produit à rechercher : accept vnoproduit @@ -887,16 +887,16 @@ dnoproduit := ‘&vnoproduit’ ; dmessage := 'Référence inconnue '; select designation into ddesignation From tproduit where noproduit = dnoproduit ; -insert into tligne values ('Désignation: ' || ddesignation); +insert into Tligne values ('Désignation: ' || ddesignation); exception when no_data_found then - insert into tligne values ( dmessage); + insert into Tligne values ( dmessage); end ; . / -select * from tligne; -drop table tligne; +select * from Tligne; +drop table Tligne; \end{verbatim} \end{exemple} @@ -970,14 +970,14 @@ doit être la dernière erreur \\ && de la section \code{exception}.\\ \begin{exemple}[Détection de doublons sur une clé primaire.] -La séquence suivante crée une ligne dans la table \code{tproduit (noproduit char(4) primary key, ...)} et stocke les erreurs dans une table \code{tligne (ligne varchar2(150));} +La séquence suivante crée une ligne dans la table \code{tproduit (noproduit char(4) primary key, ...)} et stocke les erreurs dans une table \code{Tligne (ligne varchar2(150));} \begin{verbatim} BEGIN INSERT INTO tproduit VALUES (dnoproduit, ddesignation ...); EXCEPTION WHEN DUP_VAL_ON_INDEX THEN -INSERT INTO tligne VALUES (dnoproduit || 'déjà inséré'); +INSERT INTO Tligne VALUES (dnoproduit || 'déjà inséré'); END; \end{verbatim} \end{exemple} @@ -1001,8 +1001,8 @@ END; EXCEPTION WHEN OTHERS THEN dmess2 := SQLERRM; - INSERT INTO tligne VALUES (dmess1); - INSERT INTO tligne VALUES (dmess2); + INSERT INTO Tligne VALUES (dmess1); + INSERT INTO Tligne VALUES (dmess2); COMMIT; END; \end{verbatim}