値を返す¶
値を返すには、 RETURN コマンドを使用します。次のアイテムから値を返すことができます。
のブロック ストアドプロシージャ または Snowflakeスクリプトのユーザー定義関数(UDF).
匿名ブロック。
注釈
Snowflakeスクリプト UDFs にある プレビュー.
戻り値のタイプ¶
次に挙げるいずれかの型の値を返すことができます。
テーブル
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;
$$;
ストアドプロシージャ呼び出しからの戻り値の使用¶
ストアドプロシージャ呼び出しからの戻り値の使用 をご参照ください。
Snowflakeスクリプト からの戻り値の使用 UDF¶
Snowflakeスクリプト UDFs をご参照ください。