RETURN (Snowflakeスクリプト)

指定された式の値を返します。

戻り値の詳細については、 値を返す をご参照ください。

注釈

この Snowflakeスクリプト 構造は、 Snowflakeスクリプトブロック 内でのみ有効です。

構文

RETURN <expression>;
Copy

条件:

expression

返す値に評価される式。

使用上の注意

  • RETURN ステートメントは次で実行できます。

    • ストアドプロシージャ。

    • 匿名ブロック。

  • RETURN ステートメントは、次のいずれかを返します。

    • テーブル。 RETURN ステートメントで TABLE(...) を使用します。

      ブロックがストアドプロシージャにある場合は、 CREATE PROCEDURE ステートメントで RETURNS TABLE... 句も指定する必要があります。

      注釈

      現在、 RETURNS TABLE(...) 句では、列型として GEOGRAPHY を指定できません。これは、ストアドプロシージャと匿名プロシージャのいずれを作成する場合にも適用されます。

      CREATE OR REPLACE PROCEDURE test_return_geography_table_1()
        RETURNS TABLE(g GEOGRAPHY)
        ...
      
      Copy
      WITH test_return_geography_table_1() AS PROCEDURE
        RETURNS TABLE(g GEOGRAPHY)
        ...
      CALL test_return_geography_table_1();
      
      Copy

      列タイプとして GEOGRAPHY を指定しようとすると、ストアドプロシージャの呼び出しはエラーになります。

      Stored procedure execution error: data type of returned table does not match expected returned table type
      
      Copy

      これを回避するには、 RETURNS TABLE() の列の引数と型を省略できます。

      CREATE OR REPLACE PROCEDURE test_return_geography_table_1()
        RETURNS TABLE()
        ...
      
      Copy
      WITH test_return_geography_table_1() AS PROCEDURE
        RETURNS TABLE()
        ...
      CALL test_return_geography_table_1();
      
      Copy

      RESULTSET がポイントするデータを返す場合は、次の例に示すように、 RESULTSET をTABLE(...) に渡します。

      create procedure ...
      returns table(...)
      ...
          return table(my_result_set);
      ...
      
      Copy

      RESULTSET をテーブルとして返す をご参照ください。