Pascal LAFOURCADE 4 years ago
parent dfbba7b11b
commit c5b3608b84

@ -0,0 +1,59 @@
SET echo OFF
SET verify OFF
SET feed OFF
DROP TABLE tligne;
CREATE TABLE Tligne(ligne VARCHAR2(200));
DROP TABLE tligne2;
CREATE TABLE Tligne2(ligne VARCHAR2(200));
DECLARE
DnoProduit tProduit.noProduit%TYPE;
Ddesignation tProduit.designation%TYPE;
Dstock tProduit.stock%TYPE;
Dref tFournisseur.ref%TYPE;
DlistFourn VARCHAR(1000);
CURSOR r IS SELECT noProduit,designation,stock FROM tProduit WHERE noProduit NOT IN (SELECT noProduit FROM tProduitFourn);
CURSOR t IS SELECT noProduit,designation,stock FROM tProduit;
CURSOR s IS SELECT ref FROM tProduitFourn WHERE noProduit = DnoProduit;
BEGIN
OPEN r;
INSERT INTO Tligne VALUES('noProduit designation stock');
FETCH r INTO DnoProduit,Ddesignation,Dstock;
WHILE r%FOUND
LOOP
INSERT INTO Tligne VALUES(DnoProduit||' '||Ddesignation||' '||Dstock);
FETCH r INTO DnoProduit,Ddesignation,Dstock;
END LOOP;
CLOSE r;
OPEN t;
INSERT INTO Tligne2 VALUES('noProduit designation stock reference fournisseur');
FETCH t INTO DnoProduit,Ddesignation,Dstock;
WHILE t%FOUND
LOOP
DlistFourn :='';
OPEN s;
FETCH s INTO Dref;
WHILE s%FOUND
LOOP
DlistFourn := DlistFourn||' '||Dref;
FETCH s INTO Dref;
END LOOP;
CLOSE s;
INSERT INTO Tligne2 VALUES(DnoProduit||' '||Ddesignation||' '||Dstock||' '||DlistFourn);
FETCH t INTO DnoProduit,Ddesignation,Dstock;
END LOOP;
CLOSE t;
END;
.
/
SELECT * FROM Tligne;
SELECT * FROM Tligne2;
SET echo ON
SET verify ON
SET feed ON

@ -0,0 +1,76 @@
set echo off;
set verify off;
set feed off;
DELETE FROM PRODUITFOURN WHERE NUMPRODUIT = 'P0002';
DELETE FROM PRODUITFOURN WHERE NUMPRODUIT = 'P0004';
DROP TABLE TproduitAvFourn PURGE;
DROP TABLE TproduitNoFourn PURGE;
CREATE TABLE TproduitAvFourn(
NOMFOURN VARCHAR2(100),
NUMPRODUIT CHAR(5),
DESIGNATION VARCHAR2(100),
STOCK NUMBER,
PRIXV NUMBER(10, 2),
CODERAYON CHAR(5)
);
CREATE TABLE TproduitNoFourn(
NUMPRODUIT CHAR(5),
DESIGNATION VARCHAR2(100),
STOCK NUMBER,
PRIXV NUMBER(10, 2),
CODERAYON CHAR(5)
);
DECLARE
dNumProd CHAR(5);
dTest NUMBER;
dDesign varchar2(100);
dStock NUMBER;
dPrix NUMBER(10,2);
dCodeR CHAR(5);
dNomF varchar2(100);
dListeF varchar2(1000);
CURSOR r IS SELECT * FROM PRODUIT;
CURSOR p IS SELECT f.NOM FROM FOURNISSEUR f, PRODUITFOURN pf
WHERE dNumProd = pf.NUMPRODUIT AND f.REFFOURN = pf.REFFOURN;
BEGIN
OPEN r;
FETCH r INTO dNumProd, dDesign, dStock, dPrix, dCodeR;
WHILE r%FOUND LOOP
SELECT count(NUMPRODUIT) INTO dTest FROM PRODUITFOURN
WHERE NUMPRODUIT = dNumProd;
IF dTest != 0 THEN
OPEN p;
FETCH p INTO dNomF;
WHILE p%FOUND LOOP
dListeF := dListeF||' '||dNomF;
FETCH p INTO dNomF;
END LOOP;
CLOSE p;
INSERT INTO TproduitAvFourn VALUES (dListeF, dNumProd,dDesign,dStock,dPrix,dCodeR);
dListeF := '';
ELSE
INSERT INTO TproduitNoFourn VALUES (dNumProd,dDesign,dStock,dPrix,dCodeR);
END IF;
FETCH r INTO dNumProd, dDesign, dStock, dPrix, dCodeR;
END LOOP;
CLOSE r;
END;
.
/
SELECT * FROM TproduitAvFourn;
SELECT * FROM TproduitNoFourn;
set feed on;
set verify on;
set echo on;
Loading…
Cancel
Save