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
- IA de confiance : le facteur clé pour rentabiliser les projets d’entreprise
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Hôpitaux virtuels : renforcer le système de santé français grâce au numérique
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
