Ceux qui pensent que le SQL imbriqué est source de confusion et se demandent pourquoi s'en préoccuper, seront peut-être surpris en voyant la simplicité avec laquelle on peut imbriquer des fonctions scalaires dans les applications. Pour illustrer cela, examinons à nouveau la fonction scalaire DayOfWeek. La figure 1A présente un
Le mécanisme des fonctions scalaires imbriquées
programme de service dans lequel la procédure RtvDayOfWeek extrait le jour de la semaine pour une date donnée. Cette procédure accepte un champ date et renvoie une valeur indiquant le jour de la semaine auquel la date tombe. Le programme définit d’abord une date Sunday arbitraire ( Some Sunday ) sur laquelle RtvDayofWeek fonde ses calculs. Ensuite, la procédure détermine le nombre de jours entre SomeDay et la date fournie en entrée (DateIn). Enfin, la procédure utilise un modulo arithmétique pour convertir ce nombre de jours en une valeur comprise entre 0 et 6 et ajoute 1 avant de renvoyer la valeur à l’appelant. On pourra s’étonner que la procédure utilise des opérations %Rem imbriquées (nested) ; mais la procédure fait cela pour traiter toutes les dates d’entrée sans qu’il soit nécessaire de s’ajuster aux dates antérieures à la date scindée arbitraire SomeSunday.
Voyons maintenant un programme de service équivalent (figure 1B) qui utilise la fonction scalaire SQL DayOfWeek. Dans cet exemple, la procédure RtvDayOfWeek accepte à nouveau un champ date comme entrée et renvoie une valeur de 1 à 7 qui indique le jour de la semaine auquel la date tombe. Toutefois, dans ce cas, aucun calcul n’est nécessaire. La procédure définit simplement une variable hôte (DayOfWeekNbr) dans laquelle la fonction scalaire DayOfWeek place la valeur, puis exécute la fonction SQL pour extraire le jour de la semaine. Pour exécuter les instructions SQL dans vos programmes RPG, utilisez la forme générale :
C/exec SQL
C+ YourSQLStatement
C/end-exec
où YourSQLStatement est l'instruction SQL que vous voulez exécuter. Notez que dans la figure 1B, la procédure utilise l'instruction Set pour attribuer une valeur à une variable hôte. Notez également que la syntaxe SQL requiert qu'un signe deux-points précède le nom de la variable hôte. Vous vous interrogez peut-être sur l'avantage de la méthode SQL. Après tout, ces deux programmes de service sont pratiquement de même longueur et complexité. Je pourrais répondre que la méthode de la fonction scalaire est plus claire et moins sujette à erreur, mais ces exemples démontrent seulement le mécanisme d'utilisation des fonctions scalaires en RPG. Dans un code plus complexe, nous verrons que les avantages peuvent être plus substantiels.
Téléchargez cette ressource
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Fuites de données : la France, 2ème pays le plus touché au monde début 2026
- Nomios accélère sur la cybersécurité industrielle avec un SOC renforcé et une Factory OT immersive
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Reprendre le contrôle de son SI : la clé d’un numérique à la fois souverain et responsable
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
