0% ont trouvé ce document utile (0 vote)
10 vues10 pages

Compte Rendu BDA 3

Le document présente un compte rendu sur des exercices de PL/SQL, incluant la création de procédures, de blocs anonymes et de déclencheurs. Il décrit des opérations telles que la récupération de prix et de quantités d'articles, l'ajout d'une colonne dans une table, et la gestion des couleurs d'articles via des déclencheurs. Les exemples de code illustrent les concepts abordés dans chaque exercice.

Transféré par

Shadi Bshini II
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues10 pages

Compte Rendu BDA 3

Le document présente un compte rendu sur des exercices de PL/SQL, incluant la création de procédures, de blocs anonymes et de déclencheurs. Il décrit des opérations telles que la récupération de prix et de quantités d'articles, l'ajout d'une colonne dans une table, et la gestion des couleurs d'articles via des déclencheurs. Les exemples de code illustrent les concepts abordés dans chaque exercice.

Transféré par

Shadi Bshini II
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Compte rendu BDA 3

captures:
contenus initiaux des tables:
verification
Ex2 :

a)
b)

Ex3 :
script pl/sql mode:
-- Exercice 1 : Procédure et Bloc Anonyme

-- a) Procédure GET_Prix_et_qte

CREATE OR REPLACE PROCEDURE GET_Prix_et_qte (p_codart IN


Article.codart%TYPE) AS

v_prix_unitaire Article.prixunit%TYPE;

v_quantite_en_stock Article.qtestck%TYPE;

BEGIN

SELECT prixunit, qtestck

INTO v_prix_unitaire, v_quantite_en_stock

FROM Article

WHERE codart = p_codart;

DBMS_OUTPUT.PUT_LINE('Prix unitaire: ' || v_prix_unitaire);

DBMS_OUTPUT.PUT_LINE('Quantité en stock: ' || v_quantite_en_stock);

EXCEPTION

WHEN NO_DATA_FOUND THEN

DBMS_OUTPUT.PUT_LINE('L’article n’existe pas.');

END;

-- b) Bloc PL/SQL Anonyme

DECLARE
v_codart Article.codart%TYPE;

BEGIN

-- Accepter l'entrée de l'utilisateur

v_codart := :Enter_Codart;

-- Appeler la procédure

GET_Prix_et_qte(v_codart);

END;

-- Exercice 2 : Ajout de colonne et Blocs PL/SQL

-- Partie SQL : Ajouter la colonne NbreCdes

ALTER TABLE Client

ADD NbreCdes NUMBER DEFAULT 0;

-- a) Bloc PL/SQL Anonyme

DECLARE

v_codclt Client.codclt%TYPE;

v_nbre_cdes NUMBER;

BEGIN

v_codclt :=:Enter_Codclt;
SELECT COUNT(*)

INTO v_nbre_cdes

FROM Commande

WHERE codclt = v_codclt;

UPDATE Client

SET NbreCdes = v_nbre_cdes

WHERE codclt = v_codclt;

END;

-- b) Déclencheur Trigger_MAJ_NbreCdes

CREATE OR REPLACE TRIGGER Trigger_MAJ_NbreCdes

AFTER INSERT OR DELETE ON Commande

FOR EACH ROW

BEGIN

IF INSERTING THEN

UPDATE Client

SET NbreCdes = NbreCdes + 1

WHERE codclt = :NEW.codclt;

ELSIF DELETING THEN

UPDATE Client
SET NbreCdes = NbreCdes - 1

WHERE codclt = :OLD.codclt;

END IF;

END;

-- Exercice 3 : Déclencheur pour la vérification des couleurs

CREATE OR REPLACE TRIGGER TriggerVerifCouleur

BEFORE INSERT OR UPDATE ON Article

FOR EACH ROW

BEGIN

IF :NEW.couleur NOT IN ('rouge', 'vert', 'bleu', 'noir') THEN

RAISE_APPLICATION_ERROR(-20001, 'Couleur invalide. Choisissez parmi : rouge,


vert, bleu, noir.');

END IF;

END;

Vous aimerez peut-être aussi