Zurückgeben eines Wertes

Um einen Wert zurückzugeben, verwenden Sie den Befehl RETURN. Werte können wie folgt zurückgeben werden:

  • über einen Block in einer gespeicherten Prozedur

  • über einen anonymen Block

Es können nur Werte mit einem der folgenden Typen zurückgeben werden:

  • SQL-Datentyp

  • 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 von CREATE PROCEDURE den Datentyp GEOGRAPHY nicht als Spaltentyp angeben.

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

    Wenn Sie dies tun, führt der Aufruf der gespeicherten Prozedur zu einem Fehler:

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

    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.