为 AWS 调用外部函数

本主题介绍如何调用外部函数。

外部函数与任何其他 UDF (用户定义函数) 一样被调用。(而且,与任何其他 UDF 一样,无论平台如何,都以相同的方式调用外部函数。)

  1. 如果您还没有这样做,请确保您的会话正在使用包含该函数的数据库和架构。

    (外部函数是数据库对象;调用函数时,包含函数的数据库和架构必须在会话中使用,或者必须指定函数的完全限定名称)。

    USE DATABASE <database_name>;
    USE SCHEMA <schema_name>;
    
    Copy
  2. 如果合适,并且如果您还没有这样做,请向需要调用外部函数的一个或多个 Snowflake 角色授予外部函数的 USAGE 权限。

    (角色必须拥有 USAGE 或 OWNERSHIP 权限才能调用外部函数。)

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

    例如:

    GRANT USAGE ON FUNCTION echo(INTEGER, VARCHAR) TO analyst_role;
    
    Copy
  3. 使用适当的角色,调用外部函数作为 SQL 语句的一部分。如果您创建了 Snowflake 提供的一个示例外部函数,则可以调用该函数,如下所示:

    SELECT echo(42, 'Adams');
    
    Copy

    如果您使用的函数名称不是 echo,那么请用实际函数名称替换 echo

    返回值应类似于:

    [0, 42, "Adams"]
    
    Copy

    其中:

    • 0 是返回值的行号。

    • 42, "Adams" 是返回值。

备注

尽管通常可以像其他 UDFs 一样调用外部函数,但也有少数例外。有关详细信息,请参阅 执行时间限制和问题

语言: 中文