RETURN (Snowflake Scripting)¶
返回指定表达式的值。
有关返回值的更多信息,请参阅 返回值。
备注
本 Snowflake Scripting 结构仅在 Snowflake Scripting 区块 内有效。
语法¶
RETURN <expression>;
其中:
expression计算结果为要返回的值的表达式。
使用说明¶
A RETURN statement can be run in:
A block in a stored procedure or Snowflake Scripting user-defined function (UDF).
An anonymous block.
RETURN 语句返回以下类型之一:
表。在
RETURN语句中使用TABLE(...)。如果块在存储过程中,还必须指定
RETURNS TABLE...语句中的 CREATE PROCEDURE 子句。备注
目前,在
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。
可以将变量设置为存储过程的返回值。有关更多信息,请参阅 使用从存储过程调用返回的值。
示例¶
此示例声明了名为 my_var 的变量,将该变量用于 Snowflake Scripting 匿名块,然后返回该变量的值:
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
EXECUTE IMMEDIATE
$$
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
$$;