You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.6 KiB

set echo off
set verify off
set feed off
CREATE TABLE tLigne(
designation VARCHAR2(500)
);
variable vRefProduit CHAR(5)
variable vRefFournisseur CHAR(5);
variable vPrixFournisseur NUMBER;
prompt Tappez la référence du nouveau produit:
accept vRefProduit
prompt Tappez la référence du fournisseur du nouveau produit:
accept vRefFournisseur
prompt Tappez le prix du produit:
accept vPrixFournisseur
DECLARE
dCount NUMBER;
NO_PRODUIT EXCEPTION;
NO_FOURNISSEUR EXCEPTION;
PRODUIT_FOURNISSEUR_ALREADY_EXIST EXCEPTION;
BEGIN
SELECT COUNT(*) INTO dCount FROM tProduit WHERE noProduit = '&vRefProduit';
IF dCount = 0 THEN
RAISE NO_PRODUIT;
SELECT COUNT(*) INTO dCount FROM tFournisseur WHERE ref = '&vRefFournisseur';
IF dCount = 0 THEN
RAISE NO_FOURNISSEUR;
SELECT COUNT(*) INTO dCount FROM tProduitFourn WHERE noProduit = '&vRefProduit' AND ref = '&vRefFournisseur';
IF dCount != 0 THEN
RAISE PRODUIT_FOURNISSEUR_ALREADY_EXIST;
INSERT INTO tProduitFourn VALUES('&vRefProduit', '&vRefFournisseur', '&vPrixFournisseur', NULL, NULL);
INSERT INTO tLigne VALUES('La liaison entre le produit et le fournisseur a ete ajoute');
EXCEPTION
when NO_PRODUIT then
INSERT INTO tLigne VALUES('La liaison ne peut exister car le produit renseigne n existe pas');
when NO_FOURNISSEUR then
INSERT INTO tLigne VALUES('La liaison ne peut exister car le fournisseur renseigne n existe pas');
when PRODUIT_FOURNISSEUR_ALREADY_EXIST then
INSERT INTO tLigne VALUES('La liaison existe deja, et n a donc pas ete ajoute une seconde fois.')
END;
.
/
set verify on
set echo on
set feed on
SELECT * FROM tLigne;