# L3BD2 - groupe 3 - TD3 - 09-02-21 # # ```sql= -- traitement 3 : -- exemple sur le jour 100 : select count(*) from sejour where jour<100; delete sejour where jour<100; 1. procédure traitement3: create or replace function traitement3( le_j sejour.jour%type) return integer is l_nb integer; begin select count(*) into l_nb from sejour where jour < le_j; delete sejour where jour < le_j; return l_nb; end; / /*appel fonction traitement3 */ set server output on exec dbms_output.put_line(traitement3(1)); 2. procédure traitement3 comme procédure et non une fonction: create or replace procedure traitement3_bis(le_j sejour.jour%type, lo_nb out integer) is begin select count(*) into lo_nb from sejour where jour < le_j; delete sejour where jour < le_j; end; / /* appel de la procédure traitement3_bis */ declare n integer; begin traitement3_bis(1, n); dbms_output.put_line(n); end; / 3. traitement1 /* modele d'ordre : traitement1(le_nom, le_age) : l_idc := seq_client.nextval; -- rem : variante par rapport a action 1 insert into client(idc, nom, age) values(l_idc, le_nom, le_age); retour traitement1 : l_idc;*/ create or replace function traitement1(le_nom client.nom%type, le_age client.age%type) return client.idc%type is l_idc client.idc%type; begin l_idc := seq_nextval; insert into client(idc, nom, age) values (l_idc,le_nom,le_age); return l_idc; end; / /* même appel que pour la question 1. */ 4. traitement4 /* modele d'ordre : traitement 4(l_ids, l_idc, l_idv, le_jour)) : -- ligne detruite supposee en parametre a ce stade du cours select avoir from client where idc = l_idc renvoie resultat dans : l_avoir insert into archive values(l_ids, l_idc, l_idv, le_jour, l_avoir); */ create or replace procedure traitement4( le_sejour sejour%rowtype) is l_avoir client.avoir%type; begin select avoir into l_avoir from client where idc = le_sejour.idc; insert into archive values( le_sejour.ids, le_sejour.idc, le_sejour.idv, le_sejour.jour, l_avoir); end; / ```