Initiation à SQL

Fonctions définies par l'utilisateur (UDF)

Comme le mentionne la section Utilisation de fonctions, DB2 Universal Database fournit des fonctions intégrées et des fonctions UDF (définies par l'utilisateur). Cependant, cet ensemble de fonctions ne répond jamais à toutes les exigences. Souvent, il faut créer des fonctions personnalisées pour certaines tâches. Les fonctions UDF permettent de créer des fonctions personnalisées.

Il existe quatre types de fonctions UDF : la fonction dérivée (ou modèle), la fonction scalaire externe, la fonction de table externe et la fonction de table externe OLE DB.

La présente section traite des types de fonctions dérivées ou scalaires externes. Pour plus de détails sur les types de fonctions de table externe et de table OLE DB, reportez-vous au manuel SQL Reference.

Les fonctions UDF dérivées permettent aux UDT de faire une référence sélective à une autre fonction intégrée ou UDF, déjà connue de la base de données. Il est possible d'utiliser les fonctions scalaires comme les fonctions de colonne.

Dans l'exemple suivant, la nouvelle fonction UDF (MAX) est basée sur la fonction de colonne intégrée MAX, qui prend en entrée les données de type DECIMAL. La fonction UDF MAX prend PAY comme type d'entrée et de sortie.

     CREATE FUNCTION MAX(PAY) RETURNS PAY
        SOURCE MAX(DECIMAL)

Les fonctions UDF externes sont écrites en langage de programmation. Il peut s'agir de fonctions scalaires externes et de fonctions de table externes. Ces deux types sont décrits dans le document SQL Reference.

Prenons le cas où vous avez déjà écrit une fonction destinée à compter le nombre de mots d'une chaîne. Il est possible de l'enregistrer avec la base de données, sous le nom WORDCOUNT, avec l'instruction CREATE FUNCTION. Ensuite, cette fonction peut être utilisée dans les instructions SQL.

L'instruction suivante renvoie les numéros des employés et le nombre de mots que contient leur fiche sous forme ASCII. WORDCOUNT est une fonction scalaire externe enregistrée avec la base de données et utilisée dans l'instruction.

 
     SELECT EMPNO, WORDCOUNT(RESUME)
        FROM EMP_RESUME
        WHERE RESUME_FORMAT = 'ascii'

Pour plus de détails sur les fonctions UDF, consultez le document Application Development Guide.


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]