Page 1 sur 1

(sujet inconnu)

Posté : lun. 10 déc. 2018, 16:25:20
par N1kos
Bonjour,

Le script SQL ci-dessous permet d'appeler un programme de type SRVPGM en SQL:

Code : Tout sélectionner

drop FUNCTION CIF_NUM1;                   
CREATE FUNCTION CIF_NUM1 (                
                               char( 2)       
                             , char( 2)       
                             , char(10)       
                              , char(10)         
                              , char(30)         
                              , char( 1)         
                              , char(10)         
                              , char(10)         
                              , numeric(14, 0)   
                              , numeric(14, 0)   
                              )                  
                     RETURNS    numeric(14, 0)   
 EXTERNAL NAME 'CIF_NUM1(CIF_NUM1)'          
 LANGUAGE RPGLE PARAMETER STYLE                  
 general RETURNS NULL ON NULL INPUT              
 MODIFIES SQL DATA                               
 not fenced;                             


Mais dans mon programme RPG les 4 derniers paramètres sont déclarés comme non obligatoire:

Code : Tout sélectionner

yy_lsys                       10    const options(*nopass)
yy_lbib                       10    const options(*nopass)
yy_nmin                       14s 0 const options(*nopass)
yy_nmax                       14s 0 const options(*nopass)   
Je souhaiterais dans la déclarations de la fonction SQL indiquer également que les 4 derniers paramètres sont facultatifs.

Merci d'avance

(sujet inconnu)

Posté : lun. 10 déc. 2018, 16:38:22
par thomas.barberot
Je crois qu'il faut faire 5 fonctions : une avec tous les paramètres, une avec 1 paramètre de moins, une avec 2 paramètres de moins...

FONCTIONS

Posté : lun. 10 déc. 2018, 17:08:50
par cmasse
@Thomas, c'est effectivement une solution (4 déclarations qui pointent vers le même code); On peut désormais connaitre le nbr de paramètres reçus :
https://ibm.co/2QmPQws


@N1kos : on peut aussi déclarer chaque paramètre comme ayant une valeur par défaut :

https://www.ibm.com/support/knowledgece ... udfdft.htm

(sujet inconnu)

Posté : lun. 10 déc. 2018, 17:22:29
par N1kos
Merci à tous,

J'ai opté pour la seconde solution qui fonctionne parfaitement bien.

Cordialement,