2017-06-05 4 views
0

Ich arbeite mit Postgres9.5. Ich habe ein Beispiel, das die Ergebnisse eines Cursors als String (Verkettung der Zeilen) erfolgreich zurückgibt: Hier ist das Beispiel:Gibt Ergebnisse vom Cursor als Tabelle zurück

CREATE OR REPLACE FUNCTION get_doctor_appoint() 
RETURNS TEXT AS $$ 
DECLARE 
Names TEXT DEfault ''; 
rec_appoint RECORD; 
doctor_appoint cursor 
FOR SELECT * FROM appointments 
where doctorAMKA = (SELECT doctoramka FROM doctor WHERE username='[email protected]') 
AND t>'2017-4-6 00:00:00' AND t<'2017-5-6 00:00:00'; 
BEGIN 
OPEN doctor_appoint; 

LOOP 
FETCH doctor_appoint INTO rec_appoint; 
EXIT WHEN NOT FOUND; 
Names:=Names||','||rec_appoint.t||':'||rec_appoint.patientamka; 
END LOOP; 
CLOSE doctor_appoint; 
RETURN Names; 
END; $$ 
LANGUAGE plpgsql; 

Ich mag würde die Ergebnisse als Tabelle zurückzukehren, aber keine gefunden Beispiel, das das tut.

Antwort

1

Sie deklarieren die Funktion als RETURNS SETOF text.

Verwenden Sie für jede Zeile, die Sie zurückgeben möchten, RETURN NEXT text_value;.

Um die Ausführung der Funktion zu beenden, verwenden Sie RETURN oder löschen Sie sie am unteren Ende der Funktion.

Verwandte Themen