PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पीएल/पीजीएसक्यूएल फ़ंक्शन से एकाधिक पंक्तियों को कैसे वापस करें?

बग ठीक करने के बाद @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 फ़ंक्शंस के लिए समान रूप से कार्य करता है।

संबंधित:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जब मैं तिथि के अनुसार फ़िल्टर करना चाहता हूं तो क्या ISO8601 PostgreSQL jsonb के लिए सबसे अच्छा दिनांक-प्रारूप है?

  2. postgresql INSERT क्वेरी को कर्सर के रूप में नहीं खोल सकता

  3. psql - कमांड के परिणामों को एक फाइल में सेव करें

  4. मेरी बुद्धि के लिए, अधिकतम, उपश्रेणियों द्वारा बहुत अधिक आदेश

  5. जाँच कर रहा है कि क्या अजगर के तहत एक पोस्टग्रेस्क्ल टेबल मौजूद है (और शायद Psycopg2)