Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider f5ce34e5 rédigé par E214194U's avatar E214194U
Parcourir les fichiers

bd

parent a240f48a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -46,18 +46,90 @@ delete from projet where nuproj=135;
*/
--EXERCICE 3 :
-- A
/*
CREATE OR REPLACE TRIGGER hebdoduree AFTER
insert or update ON employe
DECLARE
REC_employe employe%ROWTYPE;
BEGIN
Select * into REC_employe from employe e
where (select sum(duree) from travail t where e.nuempl=t.nuempl)> hebdo ;
--1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (-20002,'viol de la règle :temps de travail > hebdo');--1
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;--0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR ( -20003,'viol de la règle :temps de travail > hebdo (multiple)' );-- 2 ou pl+
END;
*/
/*
update employe
set employe.hebdo = 25;
*/
CREATE OR REPLACE TRIGGER TRIG3 AFTER
insert or update ON Table2
-- B
/*
CREATE OR REPLACE TRIGGER nbrprojet AFTER
insert or update ON projet
DECLARE
REC_T1 T1%ROWTYPE;
REC_employe employe%ROWTYPE;
BEGIN
SELECT * INTO REC_T1 FROM T1
WHERE Condition ;
//1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (numéro, message);//1
Select * into REC_employe from employe e
where (select count(*) from projet p where e.nuempl=p.resp)> 3 ;
--1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (-20004,'viol de la règle : employé a trop de resp');--1
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;//0 enregist
WHEN NO_DATA_FOUND THEN NULL;--0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR ( ... );// 2 ou pl+
END;
\ No newline at end of file
RAISE_APPLICATION_ERROR ( -20005,'viol de la règle : employé a trop de resp (multiple)' );-- 2 ou pl+
END;
*/
/*
insert into projet VALUES (666,'zzz',30);
insert into projet VALUES (666,'zzz',57);
*/
-- C
/*
CREATE OR REPLACE TRIGGER nbrprojet2 AFTER
insert or update ON concerne
DECLARE
REC_service service%ROWTYPE;
BEGIN
Select * into REC_service from service s
where (select count(*) from concerne c where s.nuserv=c.nuserv)> 3 ;
--1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (-20008,'viol de la règle : Plus de 3 projet dans le service');--1
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;--0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR ( -20009,'viol de la règle : Plus de 3 projet dans le service (multiple)' );-- 2 ou pl+
END;
*/
/*
select * from service s
where (select count(*) from concerne c where s.nuserv=c.nuserv)> 3 ;
insert into concerne VALUES (1,237);
*/
--D
/*
CREATE OR REPLACE TRIGGER chefsalaireup AFTER
insert or update ON employe
DECLARE
REC_employe employe%ROWTYPE;
BEGIN
Select * into REC_employe from employe e
where (select sum(duree) from travail t where e.nuempl=t.nuempl)> hebdo ;
--1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (-20010,'viol de la règle :chef gagne moins que empl');--1
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;--0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR ( -20011,'viol de la règle : chef gagne moins que empl (multiple)' );-- 2 ou pl+
END;
*/
select * from employe a
where salaire>(select chef from service) ;
chef=nuempl
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter