RETURN (Snowflake Scripting) | Snowflake Documentation (original) (raw)
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 theCREATE PROCEDURE statement.
Note
Currently, in the RETURNS TABLE(...)
clause, you can’t 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) ...
WITH test_return_geography_table_1() AS PROCEDURE RETURNS TABLE(g GEOGRAPHY) ... CALL test_return_geography_table_1();
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
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() ...
WITH test_return_geography_table_1() AS PROCEDURE RETURNS TABLE() ... CALL test_return_geography_table_1();
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); ...