Um den Cursor zu benennen, weisen Sie dem refcursor einfach einen String zu Variable:
DECLARE
ref refcursor := ''willi'';
Dann trägt das Portal diesen Namen.
Wichtig ist, dass Sie den Namen vorher vergeben Sie öffnen den Cursor.
Wenn Sie den Namen nicht zuweisen möchten, wandeln Sie das Funktionsergebnis einfach in text um , das gibt Ihnen den Cursornamen.
Verwendung von FETCH hängt von der Umgebung ab, in der Sie es aufrufen:
-
Wenn Sie es aus SQL aufrufen, müssen Sie es so machen:
FETCH ALL FROM willi;Sie müssen die SQL-Anweisung mit dem Ergebnis der Funktion konstruieren und in
textumwandeln . -
Wenn Sie es von PL/pgSQL aus aufrufen, können Sie eine Variable im
FETCHverwenden -Anweisung, aber Sie müssen ein Ziel für das Ergebnis angeben:DECLARE r refcursor; x text; -- use the correct type BEGIN r := reffunc2(); FETCH NEXT FROM r INTO x; END;