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

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:

    • Eine Tabelle Verwenden Sie TABLE(...) in der RETURN-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)
        ...
      
      Copy
      WITH test_return_geography_table_1() AS PROCEDURE
        RETURNS TABLE(g GEOGRAPHY)
        ...
      CALL test_return_geography_table_1();
      
      Copy

      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
      
      Copy

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

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

      Siehe Zurückgeben eines RESULTSET als Tabelle.

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

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