L'instruction FUNCTION crée une fonction définie par l'utilisateur (UDF) SQL temporaire au sein d'un script unique. Utilisez-la pour intégrer une logique SQL réutilisable dans une requête ou un script ponctuel, sans enregistrer de fonction permanente dans le catalogue MaxCompute.
Pour une UDF persistante appelable par toutes les requêtes du projet, utilisez plutôt l'instruction CREATE SQL FUNCTION.
Limites
Mode script requis. Définissez les UDF en mode script SQL. La définition d'une UDF en mode d'édition SQL standard génère une erreur.
Portée limitée au script de définition. Une UDF SQL temporaire n'est pas stockée dans le système de métadonnées MaxCompute. Elle n'apparaît pas dans la liste des fonctions et ne peut pas être appelée depuis d'autres environnements de requête.
Les types de données des paramètres d'entrée doivent être pris en charge par MaxCompute. Consultez la documentation sur les types de données MaxCompute V2.0 pour obtenir la liste complète. Lors de l'appel de l'UDF, les types des arguments doivent correspondre exactement aux types déclarés dans la définition.
Autorisations. La création, l'interrogation, l'appel ou la suppression d'une UDF SQL nécessite des autorisations au niveau de la fonction sur votre compte Alibaba Cloud. Consultez les autorisations MaxCompute.
Syntaxe
function <function_name>(@<parameter_in1> <datatype>[, @<parameter_in2> <datatype>...])
[returns @<parameter_out> <datatype>]
as [begin]
<function_expression>
[end];
Paramètres
|
Paramètre |
Obligatoire |
Description |
|
|
Oui |
Nom de l'UDF. Il doit être unique au sein du projet et ne peut pas correspondre au nom d'une fonction intégrée. Chaque nom ne peut être enregistré qu'une seule fois. Exécutez LIST FUNCTIONS pour vérifier les conflits de noms. |
|
|
Oui |
Paramètres d'entrée. Accepte les types de données standard et les types de fonction, y compris les fonctions anonymes. Consultez l'exemple de paramètre d'entrée de type fonction et l'exemple de fonction anonyme. |
|
|
Oui |
Type de données de chaque paramètre d'entrée. Consultez la documentation sur les types de données MaxCompute V2.0. |
|
|
Non |
Déclaration de la valeur de retour. La valeur de retour est une variable. Si cette clause est omise, la valeur de |
|
|
Oui |
Nom de la variable de sortie. |
|
|
Oui |
Expression SQL qui implémente la logique de la fonction. |
Exemples
Définir une fonction qui ajoute 1 à un entier
function my_add(@a BIGINT) as @a + 1;
Instructions connexes
CREATE SQL FUNCTION : crée une UDF SQL permanente stockée dans le système de métadonnées MaxCompute, appelable par toutes les requêtes du projet.
DESC FUNCTION : renvoie les détails concernant une UDF stockée de manière permanente : nom, propriétaire, heure de création, nom de classe et liste des ressources. Les UDF SQL temporaires ne peuvent pas être interrogées avec cette instruction.
DROP FUNCTION : supprime une UDF existante d'un projet MaxCompute.
SELECT FUNCTION : appelle une UDF SQL. Une UDF SQL temporaire n'est appelable que dans le script où elle est définie.
LIST FUNCTIONS : répertorie toutes les fonctions enregistrées dans un projet.