RETURN (Script Snowflake)¶
Retorna o valor de uma expressão especificada.
Para obter mais informações sobre valores retornados, consulte Retorno de um valor.
Nota
Este constructo do Script Snowflake só é válido dentro de um bloco do Script Snowflake.
Sintaxe¶
RETURN <expression>;
Onde:
expression
Uma expressão que é avaliada como um valor a ser devolvido.
Notas de uso¶
Uma instrução RETURN pode ser executada em:
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.
Uma instrução RETURN retorna um dos seguintes tipos:
Uma tabela. Use
TABLE(...)
na instruçãoRETURN
.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); ...
É possível definir uma variável como o valor de retorno de um procedimento armazenado. Para obter mais informações, consulte Uso do valor retornado a partir de uma chamada de procedimento armazenado.
Exemplos¶
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;
$$;