Bonjours j'essaye de calculer le chiffre d'affaires dans une base de données, mais je bloque quand j'appelle ma fonction elle ne renvoie rien du tout..
Je pense à un problème de portée de variable, mais je ne suis pas sur..


declare
pnum varchar2(10);
chiffre number(10);
begin
pnum:= 'V8000';
chiffre := chiffreV(pnum);
dbms_output.put_line(chiffre);
end;
[2019-03-04 18:14:17] completed in 6 ms

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
create or replace function chiffreV(nV varchar2) return number is
  chiffre number(10);
  placeR number;
  PRIX number;
  cursor c1 is select distinct(CLASSE.nomclasse) from CLASSE where classe.numvol=nV;
begin
  chiffre:= 0;
  for c1_ligne in c1 loop
    select coutvol*CoeffPrix into PRIX
    from VOL inner join CLASSE C2 on VOL.NumVol = C2.NumVol
    where VOL.NumVol=nV and c2.nomclasse=c1_ligne.nomclasse;
 
    select sum(NbPlaces) into placeR
    from RESERVATION
    where numvol=nV and nomclasse=c1_ligne.nomclasse;
    chiffre := chiffre+prix*placeR;
  end loop;
  return chiffre;
 
end;
le code que j'ai écrit pour appeler ma fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
declare
  pnum varchar2(10);
  chiffre number(10);
  tes number(3);
begin
  pnum:= 'V8000';
  chiffre := chiffreV(pnum);
  dbms_output.put_line(chiffre);
end;

Merci d'avance