Retorno de um valor¶
Para retornar um valor, use o comando RETURN. Você pode retornar um valor de:
Um bloco em um procedimento armazenado.
Um bloco anônimo.
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.