RETURN (Snowflake Scripting)

Returns the value of a specified expression.

For more information about returning values, see Returning a value.

Note

This Snowflake Scripting construct is valid only within a Snowflake Scripting block.

Syntax

RETURN <expression>;
Copy

Where:

expression

An expression that evaluates to the value to return.

Usage notes

  • A RETURN statement can be executed in:

    • A stored procedure.

    • An anonymous block.

  • A RETURN statement returns one of the following types:

    • A table. Use TABLE(...) in the RETURN statement.

      If your block is in a stored procedure, you must also specify the RETURNS TABLE... clause in the CREATE PROCEDURE statement.

      Note

      Currently, in the RETURNS TABLE(...) clause, you cannot specify GEOGRAPHY as a column type. This applies whether you are creating a stored or anonymous procedure.

      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

      If you attempt to specify GEOGRAPHY as a column type, calling the stored procedure results in the error:

      Stored procedure execution error: data type of returned table does not match expected returned table type
      
      Copy

      To work around this issue, you can omit the column arguments and types in 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

      If you want to return the data that a RESULTSET points to, pass the RESULTSET to TABLE(…), as shown in the example below:

      create procedure ...
      returns table(...)
      ...
          return table(my_result_set);
      ...
      
      Copy

      See Returning a RESULTSET as a table.