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
Partager