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:
Eine Tabelle Verwenden Sie
TABLE(...)
in derRETURN
-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 vonCREATE PROCEDURE
den Datentyp GEOGRAPHY nicht als Spaltentyp angeben.CREATE OR REPLACE PROCEDURE test_return_geography_table_1() RETURNS TABLE(g GEOGRAPHY) ...
Wenn Sie dies tun, führt der Aufruf der gespeicherten Prozedur zu einem Fehler:
CALL test_return_geography_table_1();
Stored procedure execution error: data type of returned table does not match expected returned table type
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() ...
Wenn Sie die Daten zurückgeben möchten, auf die ein RESULTSET zeigt, übergeben Sie
RESULTSET
anTABLE(...)
, wie im folgenden Beispiel gezeigt:create procedure ... returns table(...) ... return table(my_result_set); ...