Retorno de um valor¶
Para retornar um valor, use o comando RETURN. Você pode retornar um valor dos seguintes itens:
Um bloco em um procedimento armazenado ou função definida pelo usuário do Script Snowflake (UDF).
Um bloco anônimo.
Nota
UDFs do Script Snowflake estão em versão preliminar.
Tipos de valores de retorno¶
Você pode retornar um valor de um dos seguintes tipos:
Uma tabela
Use
TABLE(...)
na instrução RETURN.Se seu bloco estiver em um procedimento armazenado, você também deve especificar a cláusula
RETURNS TABLE(...)
na instrução CREATE PROCEDURE.Nota
Atualmente, na cláusula
RETURNS TABLE(...)
, você não pode especificar GEOGRAPHY como um tipo de coluna. Isso se aplica se você estiver criando um procedimento armazenado ou anônimo.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();
Se você tentar especificar GEOGRAPHY como um tipo de coluna, chamar o procedimento armazenado resultará no erro:
Stored procedure execution error: data type of returned table does not match expected returned table type
Para contornar este problema, você pode omitir os argumentos da coluna e digitar
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();
Se você quiser retornar os dados para os quais um RESULTSET aponta, passe o RESULTSET para
TABLE(...)
como mostrado no exemplo abaixo:CREATE PROCEDURE ... RETURNS TABLE(...) ... RETURN TABLE(my_result_set); ...
Retornar o valor de uma variável¶
Este exemplo declara uma variável chamada my_var
para uso em um bloco anônimo do Snowflake Scripting e, em seguida, retorna o valor da variável:
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
Observação: se você usar o Snowflake CLI, SnowSQL, o Classic Console, ou o método execute_stream
ou execute_string
no código Python Connector, use este exemplo (consulte Usar o Snowflake Scripting no Snowflake CLI, SnowSQL, Classic Console e Python Connector):
EXECUTE IMMEDIATE
$$
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
$$;
Uso do valor retornado a partir de uma chamada de procedimento armazenado¶
Consulte Uso do valor retornado a partir de uma chamada de procedimento armazenado.
Uso do valor retornado de um UDF do Script Snowflake¶
Consulte UDFs de scripts Snowflake.