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)
      ...
    
    Copy
    WITH test_return_geography_table_1() AS PROCEDURE
      RETURNS TABLE(g GEOGRAPHY)
      ...
    CALL test_return_geography_table_1();
    
    Copy

    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
    
    Copy

    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()
      ...
    
    Copy
    WITH test_return_geography_table_1() AS PROCEDURE
      RETURNS TABLE()
      ...
    CALL test_return_geography_table_1();
    
    Copy

    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);
    ...
    
    Copy

    Consulte Como retornar um RESULTSET como uma tabela.

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;
Copy

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;
$$;
Copy

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.