Appel d’une fonction externe pour Azure

Cette rubrique décrit comment appeler une fonction externe :

Une fonction externe est appelée comme n’importe quelle autre UDF (fonction définie par l’utilisateur). (Et, comme tout autre UDF, une fonction externe est appelée de la même manière quelle que soit la plate-forme).

  1. Si vous ne l’avez pas encore fait, assurez-vous que votre session utilise la base de données et le schéma qui contiennent la fonction.

    (Les fonctions externes sont des objets de base de données ; lorsque vous appelez la fonction, la base de données et le schéma contenant la fonction doivent être utilisés dans votre session ou vous devez spécifier le nom entièrement qualifié de la fonction).

    USE DATABASE <database_name>;
    USE SCHEMA <schema_name>;
    
  2. Le cas échéant, et si vous ne l’avez pas encore fait, accordez le privilège USAGE sur la fonction externe à un ou plusieurs rôles Snowflake qui doivent appeler la fonction externe.

    (Un rôle doit avoir des privilèges USAGE ou OWNERSHIP sur une fonction externe pour l’appeler).

    GRANT USAGE ON FUNCTION <external_function_name>(<parameter_data_type>) TO <role_name>;
    

    Par exemple :

    GRANT USAGE ON FUNCTION echo(INTEGER, VARCHAR) TO analyst_role;
    
  3. En utilisant un rôle approprié, appelez votre fonction externe dans le cadre d’une instruction SQL. Si vous avez créé l’une des fonctions externes d’exemple fournies par Snowflake, vous pouvez appeler la fonction comme indiqué ci-dessous :

    SELECT echo(42, 'Adams');
    

    Si vous avez utilisé un nom de fonction autre que echo, remplacez echo par le nom de la fonction en question.

    La valeur renvoyée doit être similaire à :

    [0, 42, "Adams"]
    

    Où :

    • 0 est le numéro de ligne de la valeur renvoyée.

    • 42, "Adams" est la valeur renvoyée.

Note

Bien qu’une fonction externe puisse généralement être appelée comme les autres UDFs, il existe cependant quelques exceptions. Pour plus de détails, voir Limitation et problèmes liés au temps d’exécution.