Salam Monsieur J'espere que vous allez bien , Depuis que j'ai essayé d'exécuter la creation des fonctions demandé ,Je me trouve toujours avec memes erreurs (votre fonction a été crée avec erreurs de compilation), voila le script que j'ai realisé:
exo1:
CREATE FUNCTION Montant(C IN NUMBER(5))RETURN Inscription.Avance%TYPE IS m Inscription.Avance%TYPE ;
begin
select SUM(Avance) INTO m from Inscription where CodForm=C;return(m);
Exception
When NO_DATA_FOUND then
return(-1);
end;
/
select DescForm,montant(CodForm) from Formation;
CodPart Number(4)
exo 2:
SET VERIFY OFF
CREATE OR REPLACE FUNCTION Reste( CodPart IN Participant.CodPart%TYPE) RETURN NUMBER(9,2) IS r NUMBER(9,2) ;
declare
CURSOR Mont_form IS
select F.CodForm,Prix,Avance from Formation F,Participant P,Inscription I where F.CodForm=I.CodForm and I.CodPart=P.CodPart ;
begin
for e IN Mont_form loop
r:=e.Prix-e.Avance;
if (r>0) then
return(r);
else
return(0);
end if;
end loop;
end;
/
select CodPart,codForm,Reste(codpart) from inscription;
utiliseé la commande show errors pour avoir plus de détails sur l'erreur .
la logique de la fonctio Reste est fausse.
On veut le reste à payer par un participant pour toutes les formations qu'il a eu.
D'accord monsieur ,merci.