Quand on utilise des types de données date, il faut que les formats de date soient compatibles entre les UDF et leurs applications hôtes. Si, par exemple, un environnement SQL utilisant le format de date *ISO invoque une UDF conçue pour traiter des dates *MJA, on risque des problèmes parce
Derniers écueils à éviter
qu’une date *ISO peut contenir un plus grand
intervalle de valeurs de date qu’une date *MJA.
Comme deux UDF peuvent partager le même nom mais être conçues pour accepter des
nombres et des types de paramètres différents, l’identificateur unique pour une
UDF est collection, nom, nombre de paramètres et types de paramètres. Ainsi, l’écriture
d’une fonction Translate personnalisée pouvant accepter des types de données VarChar
ou Char, demande deux définitions de fonctions avec le même nom mais des types
de paramètres différents.
Si le type d’un argument transmis à une UDF n’est pas cohérent avec le type de
paramètre correspondant, le type de l’argument doit être transférable au type
du paramètre (un transfert est une conversion d’un type de données en un autre).
Si les types de données ne correspondent pas et ne sont pas « transférable », on
recevra une erreur « nom-fonction NOT FOUND IN *LIBL ». Par exemple, le paramètre
quantité de temps CvtHours a un type de données Decimal(11,2). Il est acceptable
de transmettre un type de paramètre de Decimal(9,2) à CvtHours, parce qu’on peut
le mettre sous la forme Decimal(11,2) attendue. Mais un type de paramètre Decimal
(13,5) serait rejeté parce qu’on ne peut pas le promouvoir en Decimal (11,2).
Dans ce cas, SQL signalerait qu’il n’a pas pu trouver la fonction CvtHours. Par
ce message, SQL indique en fait qu’il ne peut pas trouver une fonction CvtHours
avec une liste de paramètres compatible.
On utilise l’instruction SQL Set Path pour définir la liste de collection (bibliothèque)
que SQL utilisera pour rechercher des UDF quand on compile un programme avec SQL
imbriqué ou qu’on exécute un script SQL. Par exemple, si on définit les UDF en
deux collections appelées UDFLIB1 et UDFLIB2, la syntaxe est Set Path = UDFLIB1,
UDFLIB2. Notons que le SQL Path indique où l’UDF a été créée (c’est-à -dire, la
collection explicite ou implicite utilisée sur l’instruction Create Function)
et non où l’objet de programme externe existe. Pour plus d’informations sur le
SQL Path, voir l’article « The Definitive Guide to SQL/400 Naming », NEWS/400, août
2000.
Enfin, il existe des limites pour les durées d’exécution d’une fonction, car SQL
fera un « time out » si l’exécution d’une UDF dure plus de 30 secondes. Pour savoir
comment augmenter cette valeur de time-out par défaut, voir l’article « L’optimiseur
de performances consolide les options de requête », NEWSMAGAZINE, mars 2000.
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
- IBM i célèbre ses 25 ans
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Afficher les icônes cachées dans la barre de notification
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Le futur de la cryptographie post-quantique
- 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
- Deepfakes et IA : 64% des Français pensent savoir les détecter, mais la confiance reste fragile
Articles les + lus
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
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
À la une de la chaîne Tech
- 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
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
