nbre d'argument différent entre l'appel d'une procédure et la procédure
Bonjour,
je dois modifier un bout de code qui fonctionne depuis des lustres dans ma société.
Nous sommes sous oracle 8.
En analysant ce code, il y a quelque chose que je ne comprends pas.
Peut être pourrez-vous m'éclairer.
Voici la procédure appelante:
PROCEDURE SCHRIJF_LOT_RECORD IS
BEGIN
FOR r_tmp IN (SELECT werknemer_id,
soc_nr,
loonperiode_dt,
loon_cd,
afdeling_cd,
uren,
bedrag,
eenheid
FROM soc_tijdelijk_lot
ORDER BY soc_nr,
loonperiode_dt,
loon_cd) LOOP
maak_lot_record (p_soc_nr => r_tmp.soc_nr,
p_werknemer_id => r_tmp.werknemer_id,
p_eind_dt_loonp => r_tmp.loonperiode_dt,
p_looncode => r_tmp.loon_cd,
p_afdeling => r_tmp.afdeling_cd,
p_aant_uren => to_char(r_tmp.uren),
p_bedrag => to_char(r_tmp.bedrag),
p_eenheid => to_char(r_tmp.eenheid));
INSERT INTO soc_doorgestuurd_lot (doorgestuurd_dt,
werknemer_id,
soc_nr,
loonperiode_dt,
loon_cd,
bedrag,
uren,
eenheid)
VALUES (trunc(SYSDATE),
r_tmp.werknemer_id,
r_tmp.soc_nr,
r_tmp.loonperiode_dt,
r_tmp.loon_cd,
r_tmp.bedrag,
r_tmp.uren,
r_tmp.eenheid);
COMMIT;
END LOOP;
END SCHRIJF_LOT_RECORD;
déjà là je ne comprend pas la signification du "=>" dans l'appel de la procédure "maak_lot_record" (en bleu). De plus, l'appel de cette procédure comporte 8 arguments.
Voici maintenant le code de cette procédure "maak_lot_record "
PROCEDURE MAAK_LOT_RECORD (p_soc_nr VARCHAR2,
p_werknemer_id VARCHAR2,
p_eind_dt_loonp DATE,
p_looncode VARCHAR2,
p_afdeling VARCHAR2 DEFAULT rpad(' ', 12, ' '),
p_aant_dagen VARCHAR2 DEFAULT rpad(' ', 4, ' '),
p_aant_uren VARCHAR2 DEFAULT rpad(' ', 5, ' '),
p_bedrag VARCHAR2 DEFAULT rpad(' ', 10, ' '),
p_eenheid VARCHAR2 DEFAULT rpad(' ', 15, ' ')) IS
ls_bedrag VARCHAR2(10);
ls_aant_uren VARCHAR2(6);
BEGIN
h_record := 'LOT' ||
'D' ||
' '||
rpad(p_soc_nr, 20) ||
rpad(nvl(to_char(p_eind_dt_loonp, 'DD/MM/YYYY'), ' '), 10, ' ') ||
' '||
rpad(nvl(p_afdeling, ' '), 12, ' ') ||
rpad(lpad(nvl(p_looncode,rpad(' ', 6, ' ')), 4, '0'), 6, ' ') || -- Code Salaire
lpad(nvl(p_aant_dagen,rpad(' ', 4, ' ')), 4, '0') ||
lpad(nvl(p_aant_uren, ' '), 5, ' ') ||
lpad(nvl(p_eenheid, ' '), 15, ' ') ||
' '||
lpad(nvl(p_bedrag, ' '), 11, ' ') ||
' 4';
utl_file.put_line (output_file, h_record);
gln_aantal_lijnen := gln_aantal_lijnen + 1;
END MAAK_LOT_RECORD;
Vous contaterez qu'elle comporte 9 arguments !!
Le nombre d'arguments ne devrait il pas être identique??
A quoi sert le "=>" dans la procédure appelante??
Merci de vos réponses