Nach dem Beheben der Fehler @Pavel hat darauf hingewiesen , definieren Sie auch Ihren Rückgabetyp oder Sie müssen bei jedem Aufruf eine Spaltendefinitionsliste mitliefern.
Dieser Aufruf:
SELECT * FROM get_object_fields()
... setzt voraus, dass Postgres weiß, wie man *
expandiert . Da Sie anonyme Datensätze zurückgeben, erhalten Sie eine Ausnahme:
ERROR: a column definition list is required for functions returning "record"
Eine Möglichkeit (von mehreren), dies zu beheben, ist RETURNS TABLE
(Postgres 8.4+):
CREATE OR REPLACE FUNCTION get_object_fields()
RETURNS TABLE (department_id int) AS
$func$
BEGIN
RETURN QUERY
SELECT department_id
FROM fact_department_daily
WHERE report_date = '2013-06-07';
END
$func$ LANGUAGE plpgsql;
Funktioniert genauso für SQL-Funktionen.
Verwandte: