बग ठीक करने के बाद @Pavel ने बताया , अपना रिटर्न प्रकार . भी परिभाषित करें ठीक से, या आपको प्रत्येक कॉल के साथ एक कॉलम परिभाषा सूची प्रदान करनी होगी।
यह कॉल:
SELECT * FROM get_object_fields()
... मानता है कि Postgres *
. का विस्तार करना जानता है . चूंकि आप अनाम रिकॉर्ड लौटा रहे हैं, इसलिए आपको एक अपवाद मिलता है:
ERROR: a column definition list is required for functions returning "record"
इसे ठीक करने का एक तरीका (कई में से) RETURNS TABLE
के साथ है (पोस्टग्रेज 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 फ़ंक्शंस के लिए समान रूप से कार्य करता है।
संबंधित: