From 7b96bba3e327f6cfe799acca19926f16feb801df Mon Sep 17 00:00:00 2001 From: pascal Date: Mon, 1 Feb 2021 14:33:35 +0100 Subject: [PATCH] huit --- COURS/C-exo8.sql | 41 +++++++++++++++++++++++++++++++++++++++++ COURS/PLSQL.tex | 6 ++++++ 2 files changed, 47 insertions(+) create mode 100644 COURS/C-exo8.sql diff --git a/COURS/C-exo8.sql b/COURS/C-exo8.sql new file mode 100644 index 0000000..c9862db --- /dev/null +++ b/COURS/C-exo8.sql @@ -0,0 +1,41 @@ + +set echo off +set verify off +set feed off + +CREATE TABLE tLigne( + designation VARCHAR2(200) +); + +DECLARE +dStockNull NUMBER := 0; +bin NUMBER; +dNbProduit NUMBER := 0; +CURSOR r IS SELECT stock FROM tProduit; + +BEGIN +OPEN r; +FETCH r INTO bin; + +WHILE r%FOUND +LOOP + IF bin = 0 then + dStockNull := dStockNull + 1; + END IF; + dNbProduit := dNbProduit + 1; + FETCH r INTO bin; +END LOOP; +CLOSE r; + +-- Solution sans curseur +-- SELECT COUNT(*) INTO dStockNull FROM tProduit WHERE stock = 0; +-- SELECT COUNT(*) INTO dNbProduit FROM tProduit; + +dStockNull := (dStockNull * 100) / dNbProduit; +INSERT INTO tLigne VALUES('Il y a '||dNbProduit||'% de produits avec un stock vide.'); + +END; +. +/ + +SELECT * FROM tLigne; diff --git a/COURS/PLSQL.tex b/COURS/PLSQL.tex index df537af..2248fb6 100644 --- a/COURS/PLSQL.tex +++ b/COURS/PLSQL.tex @@ -1351,6 +1351,12 @@ END; \begin{exercice} Caculer le pourcentage de produits ayant un stock nul. Proposer une solution avec curseur et une sans. \end{exercice} +\cache{ + + +} + + \begin{exercice} Créer une table des produits classés par valeur du stock : No de produit, désignation, valeur du stock, classement. \end{exercice}