RETURN (Snowflake Scripting)¶
Gibt den Wert eines angegebenen Ausdrucks zurück.
Weitere Informationen zur Rückgabe von Werten finden Sie unter Zurückgeben eines Wertes.
Bemerkung
Dieses Snowflake Scripting-Konstrukt ist nur innerhalb eines Snowflake Scripting-Blocks gültig.
Syntax¶
RETURN <expression>;
Wobei:
expression
Ein Ausdruck, der den zurückzugebenden Wert ermittelt.
Nutzungshinweise¶
Eine RETURN-Anweisung kann auf zwei Arten ausgeführt werden:
über eine gespeicherte Prozedur
über einen anonymen Block
Eine RETURN-Anweisung gibt einen der folgenden Typen zurück:
Ein SQL-Datentyp
Eine Tabelle Verwenden Sie
TABLE(...)
in derRETURN
-Anweisung.Wenn sich Ihr Block in einer gespeicherten Prozedur befindet, müssen Sie in der CREATE PROCEDURE-Anweisung auch die
RETURNS TABLE...
-Klausel angeben.Bemerkung
Derzeit können Sie in der
RETURNS TABLE(...)
-Klausel den Datentyp GEOGRAPHY als Spaltentyp angeben. Dies gilt unabhängig davon, ob Sie eine gespeicherte oder eine anonyme Prozedur erstellen.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();
Wenn Sie versuchen, GEOGRAPHY als Spaltentyp anzugeben, führt der Aufruf der gespeicherten Prozedur zu einem Fehler:
Stored procedure execution error: data type of returned table does not match expected returned table type
Um dieses Problem zu umgehen, können Sie die Spaltenargumente und -typen in
RETURNS TABLE()
weglassen.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();
Wenn Sie die Daten zurückgeben möchten, auf die ein RESULTSET zeigt, übergeben Sie RESULTSET an TABLE(…), wie im folgenden Beispiel gezeigt:
CREATE PROCEDURE ... RETURNS TABLE(...) ... RETURN TABLE(my_result_set); ...
Sie können eine Variable auf den Rückgabewert einer gespeicherten Prozedur setzen. Weitere Informationen dazu finden Sie unter Verwenden des vom Aufruf einer gespeicherten Prozedur zurückgegebenen Wertes.
Beispiele¶
In diesem Beispiel wird eine Variable mit dem Namen my_var
für die Verwendung in einem anonymen Snowflake Scripting-Block deklariert und anschließend der Wert der Variable zurückgegeben:
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
Hinweis: Wenn Sie Snowflake CLI, SnowSQL, die Classic Console, oder die Methode execute_stream
oder execute_string
in Python Connector Code verwenden, benutzen Sie stattdessen dieses Beispiel (siehe Verwenden von Snowflake Scripting in Snowflake CLI, SnowSQL, Classic Console und im Python-Connector):
EXECUTE IMMEDIATE
$$
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
$$;