RETURN (Exécution de scripts Snowflake)¶

Renvoie la valeur d’une expression spĂ©cifiĂ©e.

Pour plus d’informations sur les valeurs de retour, voir Renvoi d’une valeur.

Note

Cette construction ExĂ©cution de scripts Snowflake n’est valable qu’à l’intĂ©rieur d’un bloc ExĂ©cution de scripts Snowflake.

Syntaxe¶

RETURN <expression>;
Copy

OĂč :

expression

Une expression qui correspond Ă  la valeur Ă  retourner.

Notes sur l’utilisation¶

  • Une instruction RETURN peut ĂȘtre exĂ©cutĂ©e dans :

    • Une procĂ©dure stockĂ©e.

    • Un bloc anonyme.

  • Une instruction RETURN renvoie l’un des types suivants :

    • Une table. Utilisez TABLE(...) dans l’instruction RETURN.

      Si votre bloc se trouve dans une procĂ©dure stockĂ©e, vous devez Ă©galement spĂ©cifier la clause RETURNS TABLE... dans l’instruction CREATE PROCEDURE.

      Note

      Actuellement, dans la clause RETURNS TABLE(...), vous ne pouvez pas spĂ©cifier GEOGRAPHY comme type de colonne. Ceci s’applique, que vous crĂ©iez une procĂ©dure stockĂ©e ou anonyme.

      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

      Si vous tentez de spĂ©cifier GEOGRAPHY comme type de colonne, l’appel de la procĂ©dure stockĂ©e entraĂźne une erreur :

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

      Pour contourner ce problĂšme, vous pouvez omettre les arguments et les types de colonne dans 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

      Si vous voulez retourner les donnĂ©es vers lesquelles pointe un RESULTSET, passez le RESULTSET Ă  TABLE(
), comme le montre l’exemple ci-dessous :

      CREATE PROCEDURE ...
      RETURNS TABLE(...)
      ...
          RETURN TABLE(my_result_set);
      ...
      
      Copy

      Voir Retourner un RESULTSET comme une table.

  • Vous pouvez dĂ©finir une variable sur la valeur de retour d’une procĂ©dure stockĂ©e. Pour plus d’informations, voir Utilisation de la valeur renvoyĂ©e depuis un appel de procĂ©dure stockĂ©e.

Exemples¶

Cet exemple dĂ©clare une variable nommĂ©e my_var pour l’utiliser dans un bloc anonyme de Snowflake Scripting, puis renvoie la valeur de la variable :

DECLARE
  my_var VARCHAR;
BEGIN
  my_var := 'Snowflake';
  RETURN my_var;
END;
Copy

Remarque : Si vous utilisez Snowflake CLI, SnowSQL, Classic Console, ou la mĂ©thode execute_stream ou execute_string dans le code Connecteur Python, utilisez cet exemple Ă  la place (voir Utilisation de Snowflake Scripting dans Snowflake CLI, SnowSQL, le Classic Console et le connecteur Python) :

EXECUTE IMMEDIATE
$$
DECLARE
  my_var VARCHAR;
BEGIN
  my_var := 'Snowflake';
  RETURN my_var;
END;
$$;
Copy