Azure用の外部関数の呼び出し

このトピックでは、外部関数のトラブルシューティング方法について説明します。

外部関数は、他の UDF (ユーザー定義関数) と同様に呼び出されます。(そして、他の UDF と同様、外部関数はプラットフォームに関係なく同じ方法で呼び出されます。)

  1. まだ実行していない場合は、セッションが関数を含むデータベースとスキーマを使用していることを確認してください。

    (外部関数はデータベースオブジェクトであるため、関数を呼び出す場合は、関数を含むデータベースとスキーマをセッションで使用するか、関数の完全修飾名を指定する必要があります。)

    USE DATABASE <database_name>;
    USE SCHEMA <schema_name>;
    
    Copy
  2. 必要に応じて、まだ実行していない場合は、外部関数を呼び出す必要がある1つ以上の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が提供するサンプル外部関数の1つを作成した場合、以下に示すように関数を呼び出すことができます。

    SELECT echo(42, 'Adams');
    
    Copy

    echo 以外の関数名を使用した場合は、 echo を実際の関数名に置き換えます。

    戻り値は、次のようになっている必要があります。

    [0, 42, "Adams"]
    
    Copy

    条件:

    • 0 は戻り値の行番号です。

    • 42, "Adams" は戻り値です。

注釈

通常、外部関数は他の UDFs のように呼び出すことができますが、いくつかの例外があります。詳細については、 実行時の制限と問題 をご参照ください。