Gibt den Tabellentyp aus einer Funktion in PostgreSQL zurück
Ich habe eine Funktion, deren Rückgabetyp TABLE ist, und ich möchte für meine Funktionalität bestimmte Spalten aus meiner Tabelle in diesen RETURN TABLE-Typ übernehmen. Wenn ich die Funktion ausführe, wird kein Fehler ausgegeben, es werden jedoch keine Datensätze zurückgegeben, obwohl einige Datensätze aufgrund der von mir festgestellten Bedingung zurückgegeben werden sollten. Unten ist der Code, den ich geschrieben habe. Kann mir jemand mitteilen, wo ich einen Fehler gemacht habe?
CREATE OR REPLACE FUNCTION ccdb.fn_email_details_auto()
RETURNS TABLE (code integer, area smallint, action smallint, flag smallint, ucount integer, view_cnt integer) AS
$BODY$
DECLARE
sec_col refcursor;
cnt integer;
sec_code ccdb.update_qtable%ROWTYPE;
BEGIN
SELECT COUNT(DISTINCT section_code)
INTO cnt
FROM ccdb.update_qtable
WHERE entry_time::date = now()::date - interval '1 day';
OPEN sec_col FOR
SELECT * FROM ccdb.update_qtable WHERE entry_time::date = now()::date - interval '1 day';
FOR i IN 1..cnt
LOOP
FETCH sec_col INTO sec_code;
PERFORM section_code, ddu_area, ddu_action, status_flag, ccdb_ucount, ccdb_view_cnt
FROM ccdb.update_qtable
WHERE entry_time::date = now()::date - interval '1 day' AND section_code = sec_code.section_code
ORDER BY ddu_area, ddu_action;
END LOOP;
CLOSE sec_col;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;