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