RETURN (Snowflakeスクリプト)¶
指定された式の値を返します。
戻り値の詳細については、 値を返す をご参照ください。
注釈
この Snowflakeスクリプト 構造は、 Snowflakeスクリプトブロック 内でのみ有効です。
構文¶
RETURN <expression>;
条件:
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) ...
WITH test_return_geography_table_1() AS PROCEDURE RETURNS TABLE(g GEOGRAPHY) ... CALL test_return_geography_table_1();
列タイプとして GEOGRAPHY を指定しようとすると、ストアドプロシージャの呼び出しはエラーになります。
Stored procedure execution error: data type of returned table does not match expected returned table type
これを回避するには、
RETURNS TABLE()
の列の引数と型を省略できます。CREATE OR REPLACE PROCEDURE test_return_geography_table_1() RETURNS TABLE() ...
WITH test_return_geography_table_1() AS PROCEDURE RETURNS TABLE() ... CALL test_return_geography_table_1();
RESULTSET がポイントするデータを返す場合は、次の例に示すように、 RESULTSET をTABLE(...) に渡します。
create procedure ... returns table(...) ... return table(my_result_set); ...
RESULTSET をテーブルとして返す をご参照ください。