RETURN (Script Snowflake)

Retorna o valor de uma expressão especificada.

Para obter mais informações sobre valores retornados, consulte Como retornar um valor.

Nota

Este constructo do Script Snowflake só é válido dentro de um bloco do Script Snowflake.

Sintaxe

RETURN <expression>;
Copy

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 procedimento armazenado.

    • Um bloco anônimo.

  • Uma instrução RETURN retorna 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 isso, 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.