> Tech > Fonctions définies par l’utilisateur

Fonctions définies par l’utilisateur

Tech - Par Renaud ROSSET - 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 cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010