> Tech > Fonctions définies par l’utilisateur

Fonctions définies par l’utilisateur

Tech - Par iTPro - Publié le 24 juin 2010
email

Tandis que les nouveaux types de données système et les types définis par l'utilisateur enrichissent les genres de données pouvant être stockées, les fonctions définies par l'utilisateur étendent les fonctions supportées par SQL.
A l'instar d'autres bases de données, DB2 UDB for AS/400 fournit un ensemble de fonctions de

Fonctions définies par l’utilisateur

base permettant d’effectuer des opérations sur des sous-ensembles
de chaînes de caractères pour les données en forme de texte et calculer des
moyennes.
Les nouveaux types de données et applications, cependant, nécessitent souvent
de nouvelles fonctions. Les fonctions définies par l’utilisateur permettent
de définir algorithmes et processus spécifiques à  vos besoins en lieu unique
dans la base de données plutôt que de répéter la même opération (par exemple,
le calcul des taxes sur les ventes) dans plusieurs instructions SQL.

Les fonctions définies par l’utilisateur de l’AS/400 peuvent être écrites en SQL
ou dans un langage ILE ou encore dérivées d’une fonction système intégrée (IBM
supportera prochainement la possibilité d’implémenter des fonctions définies par
l’utilisateur en Java). En dépit de la mise en oeuvre, utilisez l’instruction SQL
Create Function pour définir toutes les fonctions définies par l’utilisateur.
Une fois définies, on peut utiliser les fonctions définies par l’utilisateur dans
une instruction SQL à  l’instar de n’importe quelle fonction ou opérateur intégré.
L’exemple ci-dessous présente la définition d’une fonction définie par l’utilisateur,
mise en oeuvre en C ILE. Cette fonction calcule la surface d’un cercle :
Create Function CircleArea
( Float )Returns Float External Name ‘pgmlib.cirpgm’Language C
Cette fonction peut être utilisée dans une instruction Select comme ceci : Select
CircleArea ( RadiusColumn ) From Objects Where ShapeType = ‘circle’ Voici comment
la même fonction peut être mise en oeuvre en SQL :Create Function CircleArea (
Radius Float ) Returns Float Language SQL Begin Declare pi Float Default 3.14;
Declare Area Float; Set Area =

Les fonctions définies par l’utilisateur se révèlent souvent fort pratiques pour
manipuler les types de données définis par l’utilisateur

Les fonctions définies par l’utilisateur dérivées des fonctions systèmes se révèlent
souvent fort pratiques pour manipuler les types de données définis par l’utilisateur.
Le type de données FRFrancs par exemple, créé dans l’exemple précédent, ne dispose
pas d’opérateurs arithmétiques qui lui soient associés. DB2 UDB for AS/400 sait
comment effectuer des opérations arithmétiques sur des données de type décimal,
mais ne sait pas comment procéder pour des données de type FRFrancs.

Toutefois, les opérations d’arithmétiques décimales du système supportent entièrement
les valeurs décimales stockées dans le type de données FRFrancs. Aussi peut on
hériter des opérateurs addition (+) et soustraction (-) Decimal avec les instructions
suivantes : Create Function « + » ( FRFrancs, FRFrancs )
Returns FRFrancs Source « + » ( Decimal(), Decimal() )
Create Function « – » ( FRFrancs, FRFrancs ) Returns
FRFrancs Source « – » ( Decimal(), Decimal() )
Comme l’illustre cet exemple, le support d’une fonction définie par l’utilisateur
permet de redéfinir des opérateurs ainsi que des noms de fonctions (une
fonctionnalité importante des langages de programmation orientés objet).
Avec la redéfinition des fonctions, on peut définir plusieurs fonctions de même
nom et les amener à  exécuter différentes opérations d’après le type d’argument
fourni lors de l’appel à  la fonction reçu.

Par exemple, si l’entreprise doit convertir des dollars américains, des livres
sterling et des dollars canadiens en francs français et que l’on dispose d’un
type défini par l’utilisateur pour chaque devise, on peut créer une fonction appelée
ConvertToFRFrancs pour chaque type de devise. La base de données trouvera automatiquement
la fonction de conversion à  appeler d’après le type de données de l’argument. Les fonctions définies par l’utilisateur facilitent le travail avec les
types de données définis par l’utilisateur et les données non traditionnelles
stockées dans les BLOB, CLOB, DBCLOB et les datalinks.
Puisque le système ne connaît pas à  l’avance les types de données et les objets
fournis par l’utilisateur, ses fonctions intégrées seront de peu d’utilité. Toutefois,
en définissant ses propres fonctions personnalisées, on peut utiliser SQL pour
accéder et traiter ces nouvelles formes de données.

Téléchargez gratuitement cette ressource

Sécurité Office 365 : 5 erreurs à ne pas commettre

Sécurité Office 365 : 5 erreurs à ne pas commettre

A l’heure où les données des solutions Microsoft de Digital Workplace sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités Microsoft 365, Exchange et Teams ? Découvrez les 5 erreurs à ne pas commettre et les bonnes pratiques recommandées par les Experts DIB France.

Tech - Par iTPro - Publié le 24 juin 2010