SlideShare une entreprise Scribd logo
Exercices – PL/SQL 1/1
• la désignation des produits soit écrite en majuscules ;
• le prix unitaire en francs des produits soit converti en Euros. Le prix en Euros devra être entier
(arrondir au supérieur).
Cas particuliers à traiter :
• Si la table PRODUIT est vide, la table PRODUIT2000 devra contenir uniquement le tuple
(0,’Pas de produit’, NULL, NULL).
• Si un prix de la table produit est NULL, son prix en Euros doit être 0.
Indications :
• Considérer que la structure de la table PRODUIT2000 a déjà été créée.
• Tester si la table PRODUIT est vide. Si ce n’est pas le cas, y accéder séquentiellement à l’aide
d’un curseur, effectuer les transformations sur les champs et stocker le résultat dans la table
PRODUIT2000.
• Utiliser les fonctions SQL*Plus UPPER, TRUNC et NVL.
Exercice 2
Pour tenter d’établir une corrélation, on souhaite connaître la différence de quantité moyenne entre les
commandes successivement enregistrées dans la table COMMANDE de la base de données CLIENT-
COMMANDE-PRODUIT-FOURNISSEUR. La table COMMANDE est remplie de commandes va-
luées (c’est-à-dire, pour lesquelles l’attribut QUANTITE n’est pas NULL) ou non. Les commandes non
valuées ne sont pas à prendre en compte. Écrire un programme PL/SQL permettant de calculer la diffé-
rence de quantité moyenne entre les commandes.
Cas particuliers à traiter :
• La table COMMANDE contient moins de deux commandes valuées.
Indications :
• Créer un curseur contenant les quantités de commandes valuées.
• Lire la première quantité puis, pour toutes les quantités suivantes, cumuler la valeur absolue de
quantité courante – quantité précédente (fonction ABS).
• Afficher le résultat dans une exception à l’aide de la procédure RAISE_APPLICATION_ERROR.
Utiliser l’opérateur de concaténation || et la fonction TO_CHAR.
Exercices – PL/SQL Correction 1/2
Correction Exercice 1
-- Creation de la table PRODUIT2000 a partir de la table PRODUIT
DECLARE
euro CONSTANT REAL:=6.55957;
nbprod NUMBER(3);
aucun_produit EXCEPTION;
CURSOR acces IS
SELECT numprod, desi, prixuni, numfour FROM produit;
prod acces%ROWTYPE;
newdesi produit.desi%TYPE;
newprix produit.prixuni%TYPE;
BEGIN
-- Compte des produits
SELECT COUNT(*) INTO nbprod FROM PRODUIT;
-- Si pas de produits, exception
IF nbprod=0 THEN
RAISE aucun_produit;
END IF;
-- Acces sequentiel a la table PRODUIT
-- Remplissage de la table PRODUIT2000
FOR prod IN acces LOOP
newdesi:=UPPER(prod.desi);
newprix:=NVL(prod.prixuni,0);
IF newprix<>0 THEN
newprix:=TRUNC(newprix/euro)+1;
END IF;
INSERT INTO produit2000
VALUES(prod.numprod,newdesi,newprix,prod.numfour);
END LOOP;
-- Validation de la transaction
COMMIT;
EXCEPTION
WHEN aucun_produit THEN
INSERT INTO produit2000
VALUES(0,'Pas de produit',NULL,NULL);
END;
.
/
www.Telechargercours.com
Exercices – PL/SQL
Exercice 1
2001, il est temps de passer à l’Euro pour l’entreprise de VPC dont la base de données
CLIENT-COMMANDE-PRODUIT-FOURNISSEUR sert d’exemple dans le cours. Écrire
un programme PL/SQL permettant de construire, à partir de la table PRODUIT, une table
PRODUIT2000 telle que :
www.TelechargerCours.com
Exercices – PL/SQL Correction 2/2
Correction Exercice 2
-- DIFFERENCE MOYENNE DE QUANTITE ENTRE LES COMMANDES
DECLARE
CURSOR valuees IS
SELECT quantite FROM commande WHERE quantite IS NOT NULL;
cde valuees%ROWTYPE;
prec REAL; -- quantite precedente
cour REAL; -- quantite courante
cumul REAL;
moyenne REAL;
ncv INTEGER;
n INTEGER;
pas_assez EXCEPTION;
resultat EXCEPTION;
BEGIN
-- Test nombre de commandes valuees
SELECT COUNT(*) INTO ncv FROM commande WHERE quantite IS NOT NULL;
IF ncv<2 THEN
RAISE pas_assez;
END IF;
-- Acces 1er tuple
OPEN valuees;
FETCH valuees INTO cde;
prec:=cde.quantite;
-- Acces aux suivants et cumul
cumul:=0;
n:=0;
LOOP
FETCH valuees INTO cde;
EXIT WHEN valuees%NOTFOUND;
cour:=cde.quantite;
cumul:=cumul+ABS(cour-prec);
n:=n+1;
prec:=cour;
END LOOP;
CLOSE valuees;
-- Calcul et affichage de la moyenne
moyenne:=cumul/n;
RAISE resultat;
EXCEPTION
-- Erreur
WHEN pas_assez THEN
RAISE_APPLICATION_ERROR(-20501,'Pas assez de commandes');
-- Resultat
WHEN resultat THEN
RAISE_APPLICATION_ERROR(-20500,'Moyenne = '||TO_CHAR(moyenne));
END;
.
/
www.TelechargerCours.com

Contenu connexe

Tendances

TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi
 
Chp1 - Introduction aux ERP
Chp1 - Introduction aux ERPChp1 - Introduction aux ERP
Chp1 - Introduction aux ERP
Lilia Sfaxi
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
AmineMouhout1
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
ENSET, Université Hassan II Casablanca
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
Yassine Badri
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
Lilia Sfaxi
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
Maya Medjdoub
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
Joubi Aaziz
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
Nassim Amine
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
Ines Ouaz
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
Faycel Chaoua
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
Amir Souissi
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
webreaker
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
Lilia Sfaxi
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
Lilia Sfaxi
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
Ben Abdelwahed Slim
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
Mohamed Heny SELMI
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 

Tendances (20)

TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
Chp1 - Introduction aux ERP
Chp1 - Introduction aux ERPChp1 - Introduction aux ERP
Chp1 - Introduction aux ERP
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 

En vedette

exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
Yassine Badri
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
webreaker
 
Merise exercices-mcd_corriges
Merise  exercices-mcd_corrigesMerise  exercices-mcd_corriges
Merise exercices-mcd_corrigesMehdi El
 
Electrotechnique : Exercices corrigés
Electrotechnique : Exercices corrigésElectrotechnique : Exercices corrigés
Electrotechnique : Exercices corrigés
RAMZI EL IDRISSI
 
Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsql
kati_f87
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
Abdelouahed Abdou
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
Abdelouahed Abdou
 
Cours Base de Données
Cours Base de DonnéesCours Base de Données
Cours Base de Données
yassine kchiri
 
Modelisation conception SI
Modelisation conception SIModelisation conception SI
Modelisation conception SI
Lara L' Impératrice
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE HINDOUSSATI
 
Exercices corrigés de mathématiques financières
Exercices corrigés de mathématiques financièresExercices corrigés de mathématiques financières
Exercices corrigés de mathématiques financières
eri8p7f4ku
 
A2 ~ les exercices de grammaire, avec corrigés
A2 ~ les exercices de grammaire, avec corrigésA2 ~ les exercices de grammaire, avec corrigés
A2 ~ les exercices de grammaire, avec corrigésIsabel Molina Gómez
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
Alphorm
 
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTITD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
soufiane merabti
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
Abdelouahed Abdou
 
Electronique de puissance
Electronique de puissanceElectronique de puissance
Electronique de puissanceAmine Chahed
 
Exercices corrigés Compta S2
Exercices corrigés Compta S2Exercices corrigés Compta S2
Exercices corrigés Compta S2Cours Fsjest
 
Cours complet math financière
Cours complet math financièreCours complet math financière
Cours complet math financièreMarouane Chidali
 

En vedette (20)

exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
Merise exercices-mcd_corriges
Merise  exercices-mcd_corrigesMerise  exercices-mcd_corriges
Merise exercices-mcd_corriges
 
Electrotechnique : Exercices corrigés
Electrotechnique : Exercices corrigésElectrotechnique : Exercices corrigés
Electrotechnique : Exercices corrigés
 
Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsql
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Pl/sql - interaction avec la base de données & structures de contrôle
Pl/sql  - interaction avec la base de données & structures de contrôlePl/sql  - interaction avec la base de données & structures de contrôle
Pl/sql - interaction avec la base de données & structures de contrôle
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
Cours Base de Données
Cours Base de DonnéesCours Base de Données
Cours Base de Données
 
Modelisation conception SI
Modelisation conception SIModelisation conception SI
Modelisation conception SI
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE
 
Exercices corrigés de mathématiques financières
Exercices corrigés de mathématiques financièresExercices corrigés de mathématiques financières
Exercices corrigés de mathématiques financières
 
A2 ~ les exercices de grammaire, avec corrigés
A2 ~ les exercices de grammaire, avec corrigésA2 ~ les exercices de grammaire, avec corrigés
A2 ~ les exercices de grammaire, avec corrigés
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
 
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTITD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
TD - travaux dirigé limite de fonction ( exercice ) SOUFIANE MERABTI
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
 
Programmation linéaire
Programmation linéaireProgrammation linéaire
Programmation linéaire
 
Electronique de puissance
Electronique de puissanceElectronique de puissance
Electronique de puissance
 
Exercices corrigés Compta S2
Exercices corrigés Compta S2Exercices corrigés Compta S2
Exercices corrigés Compta S2
 
Cours complet math financière
Cours complet math financièreCours complet math financière
Cours complet math financière
 

Plus de webreaker

Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrige
webreaker
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplication
webreaker
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
webreaker
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oracle
webreaker
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
webreaker
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oracle
webreaker
 
Création et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL OracleCréation et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL Oracle
webreaker
 
Manipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracleManipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracle
webreaker
 
Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracle
webreaker
 
Mise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*PlusMise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*Plus
webreaker
 
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL OracleÉcriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
webreaker
 
Sous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL OracleSous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL Oracle
webreaker
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oracle
webreaker
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
webreaker
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
webreaker
 
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL OracleAfficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
webreaker
 
Fonctions Mono-Ligne
Fonctions Mono-LigneFonctions Mono-Ligne
Fonctions Mono-Ligne
webreaker
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
webreaker
 
L'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL OracleL'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL Oracle
webreaker
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
webreaker
 

Plus de webreaker (20)

Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrige
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplication
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oracle
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oracle
 
Création et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL OracleCréation et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL Oracle
 
Manipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracleManipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracle
 
Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracle
 
Mise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*PlusMise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*Plus
 
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL OracleÉcriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
 
Sous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL OracleSous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL Oracle
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oracle
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
 
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL OracleAfficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
 
Fonctions Mono-Ligne
Fonctions Mono-LigneFonctions Mono-Ligne
Fonctions Mono-Ligne
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
 
L'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL OracleL'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL Oracle
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 

Dernier

Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
mohammadaminejouini
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
Txaruka
 
Margaux Laurens - Neel.pptx
Margaux        Laurens     -     Neel.pptxMargaux        Laurens     -     Neel.pptx
Margaux Laurens - Neel.pptx
Txaruka
 
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
MustaphaZhiri
 
Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
Morzadec Cécile
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 

Dernier (7)

Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
 
Margaux Laurens - Neel.pptx
Margaux        Laurens     -     Neel.pptxMargaux        Laurens     -     Neel.pptx
Margaux Laurens - Neel.pptx
 
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
 
Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 

Telecharger Exercices corrigés PL/SQL

  • 1. Exercices – PL/SQL 1/1 • la désignation des produits soit écrite en majuscules ; • le prix unitaire en francs des produits soit converti en Euros. Le prix en Euros devra être entier (arrondir au supérieur). Cas particuliers à traiter : • Si la table PRODUIT est vide, la table PRODUIT2000 devra contenir uniquement le tuple (0,’Pas de produit’, NULL, NULL). • Si un prix de la table produit est NULL, son prix en Euros doit être 0. Indications : • Considérer que la structure de la table PRODUIT2000 a déjà été créée. • Tester si la table PRODUIT est vide. Si ce n’est pas le cas, y accéder séquentiellement à l’aide d’un curseur, effectuer les transformations sur les champs et stocker le résultat dans la table PRODUIT2000. • Utiliser les fonctions SQL*Plus UPPER, TRUNC et NVL. Exercice 2 Pour tenter d’établir une corrélation, on souhaite connaître la différence de quantité moyenne entre les commandes successivement enregistrées dans la table COMMANDE de la base de données CLIENT- COMMANDE-PRODUIT-FOURNISSEUR. La table COMMANDE est remplie de commandes va- luées (c’est-à-dire, pour lesquelles l’attribut QUANTITE n’est pas NULL) ou non. Les commandes non valuées ne sont pas à prendre en compte. Écrire un programme PL/SQL permettant de calculer la diffé- rence de quantité moyenne entre les commandes. Cas particuliers à traiter : • La table COMMANDE contient moins de deux commandes valuées. Indications : • Créer un curseur contenant les quantités de commandes valuées. • Lire la première quantité puis, pour toutes les quantités suivantes, cumuler la valeur absolue de quantité courante – quantité précédente (fonction ABS). • Afficher le résultat dans une exception à l’aide de la procédure RAISE_APPLICATION_ERROR. Utiliser l’opérateur de concaténation || et la fonction TO_CHAR. Exercices – PL/SQL Correction 1/2 Correction Exercice 1 -- Creation de la table PRODUIT2000 a partir de la table PRODUIT DECLARE euro CONSTANT REAL:=6.55957; nbprod NUMBER(3); aucun_produit EXCEPTION; CURSOR acces IS SELECT numprod, desi, prixuni, numfour FROM produit; prod acces%ROWTYPE; newdesi produit.desi%TYPE; newprix produit.prixuni%TYPE; BEGIN -- Compte des produits SELECT COUNT(*) INTO nbprod FROM PRODUIT; -- Si pas de produits, exception IF nbprod=0 THEN RAISE aucun_produit; END IF; -- Acces sequentiel a la table PRODUIT -- Remplissage de la table PRODUIT2000 FOR prod IN acces LOOP newdesi:=UPPER(prod.desi); newprix:=NVL(prod.prixuni,0); IF newprix<>0 THEN newprix:=TRUNC(newprix/euro)+1; END IF; INSERT INTO produit2000 VALUES(prod.numprod,newdesi,newprix,prod.numfour); END LOOP; -- Validation de la transaction COMMIT; EXCEPTION WHEN aucun_produit THEN INSERT INTO produit2000 VALUES(0,'Pas de produit',NULL,NULL); END; . / www.Telechargercours.com Exercices – PL/SQL Exercice 1 2001, il est temps de passer à l’Euro pour l’entreprise de VPC dont la base de données CLIENT-COMMANDE-PRODUIT-FOURNISSEUR sert d’exemple dans le cours. Écrire un programme PL/SQL permettant de construire, à partir de la table PRODUIT, une table PRODUIT2000 telle que : www.TelechargerCours.com
  • 2. Exercices – PL/SQL Correction 2/2 Correction Exercice 2 -- DIFFERENCE MOYENNE DE QUANTITE ENTRE LES COMMANDES DECLARE CURSOR valuees IS SELECT quantite FROM commande WHERE quantite IS NOT NULL; cde valuees%ROWTYPE; prec REAL; -- quantite precedente cour REAL; -- quantite courante cumul REAL; moyenne REAL; ncv INTEGER; n INTEGER; pas_assez EXCEPTION; resultat EXCEPTION; BEGIN -- Test nombre de commandes valuees SELECT COUNT(*) INTO ncv FROM commande WHERE quantite IS NOT NULL; IF ncv<2 THEN RAISE pas_assez; END IF; -- Acces 1er tuple OPEN valuees; FETCH valuees INTO cde; prec:=cde.quantite; -- Acces aux suivants et cumul cumul:=0; n:=0; LOOP FETCH valuees INTO cde; EXIT WHEN valuees%NOTFOUND; cour:=cde.quantite; cumul:=cumul+ABS(cour-prec); n:=n+1; prec:=cour; END LOOP; CLOSE valuees; -- Calcul et affichage de la moyenne moyenne:=cumul/n; RAISE resultat; EXCEPTION -- Erreur WHEN pas_assez THEN RAISE_APPLICATION_ERROR(-20501,'Pas assez de commandes'); -- Resultat WHEN resultat THEN RAISE_APPLICATION_ERROR(-20500,'Moyenne = '||TO_CHAR(moyenne)); END; . / www.TelechargerCours.com