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 Renvoyer 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 :

    • Un type de données SQL.

    • 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 colonnes 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.