След коригиране на грешките @Pavel посочи , също така дефинирайте своя тип връщане правилно, или трябва да предоставите списък с дефиниции на колони с всяко повикване.
Това обаждане:
SELECT * FROM get_object_fields()
... предполага, че Postgres знае как да разшири *
. Тъй като връщате анонимни записи, получавате изключение:
ERROR: a column definition list is required for functions returning "record"
Един от начините (от няколко) да поправите това е с 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;
Работи за SQL функции по същия начин.
Свързани: