L'instruction Create Function de la figure 1a présente une UDF SQL simple qui renvoie le nom du jour de la semaine pour une date donnée. Si on transmet la date 2 janvier 2000 à la fonction, elle renvoie la valeur Sunday (Dimanche). L'instruction de la figure 1b utilise la fonction
Création d’une UDF SQL
Day_Name dans les clauses Select et Group
By pour résumer les saisies de commandes pour chaque jour de la semaine. Il ne
faut pas oublier que l’on peut utiliser une UDF scalaire partout où on utiliserait
une fonction intégrée (dans la clause Set d’une instruction Update, dans une clause
Where, par exemple).
Examinons la syntaxe de l’instruction Create Function. Elle définit une collection
(bibliothèque), un nom de fonction, puis une liste de paramètres en entrée placée
entre parenthèses. Il faut inclure un nom et un type de donnée pour chaque paramètre
de la liste. Dans le cas présent, il n’y a qu’un paramètre en entrée, parmInDate,
dont le type de données est Date. Ensuite, le mot-clé Returns indique le type
de données que la fonction renverra et le mot-clé pour le langage précise SQL.
Langages acceptés : C, C++, CL, Cobol, Cobol ILE, PL/I, RPG, RPG ILE, SQL et (en
V4R5 seulement) Java.
On rencontre également le mot-clé Deterministic. Une UDF Deterministic renvoie
toujours la même valeur quand on lui donne des valeurs de paramètre d’entrée identiques.
Ce mot-clé peut être utile dans le cas où une UDF serait appelée de nombreuses
fois avec les mêmes paramètres d’entrée. En effet si SQL sait qu’une UDF renvoie
la même valeur, il n’aura pas à l’exécuter de façon répétitive. Avec une UDF non
déterministe (définie par les mots-clés Not Deterministic), il est impossible
de connaître le résultat, même si des paramètres identiques sont transmis. On
utilisera les mots-clés Not Deterministic pour créer la plupart des fonctions
accédant aux tables pour recueillir des informations.
L’option Returns Null on Null Input demande à SQL/400 de ne pas exécuter l’UDF
si l’un quelconque des paramètres d’entrée est Null. Si un ou plusieurs paramètres
sont Null, le résultat de l’UDF sera lui aussi Null. Cette option améliore les
performances dans le cas d’un paramètre Null parce que l’UDF n’a alors pas à s’exécuter.
A l’inverse, s’il faut appeler la fonction avec des paramètres Null, on indiquera
Called On Null Input.
Quand on précise Langage SQL, il est nécessaire d’avoir la base de la fonction
écrite en SPL. Figure 1a, ce code se trouve entre les mots-clés Begin et End.
Le mot-clé SPL Return renvoie le résultat de la fonction et cette valeur doit
correspondre au type de données indiqué dans le mot-clé Returns. Rappelons qu’on
a besoin du compilateur C ILE pour créer une fonction avec SPL. Pour plus d’informations
sur l’utilisation de SPL, voir l’encadré « Références SPL ».
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Semperis : gouverner l’identité à l’ère des agents IA
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Akamai Technologies déploie sa stratégie de protection en ligne
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
