Tous les produits
Search
Centre de documentation

MaxCompute:CREATE SQL FUNCTION

Dernière mise à jour :Aug 10, 2026

Les fonctions définies par l'utilisateur (UDF) SQL permettent d'encapsuler une logique métier réutilisable directement en SQL, sans écrire de code Java ou Python. Contrairement aux UDF Java/Python, les UDF SQL acceptent des paramètres de type fonction, y compris des fonctions anonymes. L'instruction CREATE SQL FUNCTION crée une UDF SQL permanente stockée dans le système de métadonnées MaxCompute.

Pour créer une UDF SQL temporaire non persistée dans le système de métadonnées, utilisez plutôt l'instruction FUNCTION

Prérequis

Avant de commencer, vérifiez que vous disposez des éléments suivants :

  • Des autorisations au niveau de la fonction sur votre compte Alibaba Cloud (création, requête, appel et suppression). Pour plus d'informations, consultez la page Autorisations MaxCompute

  • Le mode script SQL activé dans votre éditeur. L'exécution de CREATE SQL FUNCTION en mode d'édition SQL standard génère une erreur. Pour plus d'informations, consultez la page SQL en mode script

Syntaxe

create sql function <function_name>(@<parameter_in1> <datatype>[, @<parameter_in2> <datatype>...])
[returns @<parameter_out> <datatype>]
as [begin]
<function_expression>
[end];

Pour une UDF constituée d'une seule expression, omettez les mots-clés begin et end et saisissez l'expression directement après as. Pour une logique comportant plusieurs instructions, encadrez-les avec begin...end.

Paramètres

Paramètre

Obligatoire

Description

function_name

Oui

Nom de l'UDF SQL. Il doit être unique au sein du projet et ne pas correspondre au nom d'une fonction intégrée. Chaque nom de fonction unique ne peut être enregistré qu'une seule fois. Pour vérifier les noms de fonction existants, exécutez LIST FUNCTIONS.

parameter_in

Oui

Paramètres d'entrée. Ils peuvent être de type fonction, y compris des fonctions anonymes. Pour des exemples, consultez la section paramètres d'entrée de type fonction. Pour des exemples de fonctions anonymes, consultez la section paramètres d'entrée de fonction anonyme.

datatype

Oui

Type de données de chaque paramètre d'entrée. Il doit s'agir d'un type pris en charge par MaxCompute. Consultez la page Édition des types de données MaxCompute V2.0. Lors de l'appel de l'UDF, les types de données d'entrée doivent correspondre exactement à ceux définis ici.

returns

Non

Variable de valeur de retour. Si ce paramètre est omis, la valeur de function_name est renvoyée par défaut.

parameter_out

Oui (si returns est spécifié)

Nom du paramètre de sortie pour la valeur de retour.

function_expression

Oui

Logique d'implémentation de l'UDF. Elle peut utiliser un opérateur intégré, une fonction intégrée ou une autre UDF.

Exemples

UDF simple

Pour une logique constituée d'une seule expression, saisissez l'expression directement après as :

-- Increment a BIGINT value by 1
create sql function my_add(@a BIGINT) as @a + 1;

L'expression suivant as constitue le corps de la fonction. Elle peut faire référence à des opérateurs intégrés, des fonctions intégrées ou d'autres UDF.

UDF multi-instructions

Pour une logique nécessitant des variables intermédiaires, utilisez begin...end pour encadrer plusieurs instructions :

-- Sum three BIGINT values using an intermediate variable
create sql function my_sum(@a BIGINT, @b BIGINT, @c BIGINT) returns @my_sum BIGINT
as begin
    @temp := @a + @b;
    @my_sum := @temp + @c;
end;

La clause returns @my_sum BIGINT nomme explicitement la variable de retour. Si vous omettez returns, la fonction renvoie par défaut la valeur de function_name.

Paramètres d'entrée de type fonction

Les UDF SQL acceptent des paramètres de type fonction, ce qui permet de transmettre des fonctions intégrées ou d'autres UDF en tant qu'arguments. Pour des exemples détaillés, consultez les sections suivantes :

Étapes suivantes

Après avoir créé une UDF SQL, utilisez les instructions suivantes pour la gérer et l'appeler :

Instruction

Description

SELECT FUNCTION

Appelle une UDF SQL.

DESC FUNCTION

Affiche les détails de l'UDF : nom, propriétaire, heure de création, nom de classe et liste des ressources.

LIST FUNCTIONS

Répertorie toutes les UDF d'un projet MaxCompute.

DROP FUNCTION

Supprime une UDF existante d'un projet MaxCompute.

FUNCTION

Crée une UDF SQL temporaire (non persistée dans le système de métadonnées).