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 をテーブルとして返す をご参照ください。
ストアドプロシージャの戻り値に変数を設定することができます。詳細については、 ストアドプロシージャ呼び出しからの戻り値の使用 をご参照ください。
例¶
この例では、Snowflake Scriptingの匿名ブロックで使用するために my_var
という名前の変数を宣言し、変数の値を返します。
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
注意: Snowflake CLI、 SnowSQL、 Classic Console、 execute_stream
、 execute_string
メソッドを Python Connector コードで使用する場合は、代わりにこの例を使用してください(Snowflake CLI、 SnowSQL、 Classic Console、Python ConnectorでSnowflake Scriptingを使用する を参照)。
EXECUTE IMMEDIATE
$$
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
$$;