PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie man mit dem Wert einer Refcursor-Variablen FETCH verwendet

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 text umwandeln .

  • Wenn Sie es von PL/pgSQL aus aufrufen, können Sie eine Variable im FETCH verwenden -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;