Renvoyer une valeur

Pour retourner une valeur, utilisez la commande RETURN. Vous pouvez renvoyer une valeur depuis :

  • Un bloc dans une procédure stockée.

  • Un bloc anonyme.

Vous pouvez retourner une valeur de 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(...) de CREATE PROCEDURE, vous ne pouvez pas spécifier GEOGRAPHY comme type de colonne.

    CREATE OR REPLACE PROCEDURE test_return_geography_table_1()
    RETURNS TABLE(g GEOGRAPHY)
    ...
    
    Copy

    Si vous le faites, l’appel de la procédure stockée entraîne une erreur :

    CALL test_return_geography_table_1();
    
    Copy
    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

    Si vous souhaitez renvoyer 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.