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

PostgreSQL फ़ंक्शन में पंक्ति प्रकार की सरणी कैसे घोषित करें?

CREATE OR REPLACE FUNCTION for_example()
  RETURNS integer AS
$func$
DECLARE
   r "WEBHOST";
   b "WEBHOST"[];         -- this works
BEGIN
   FOR r IN 
      SELECT * FROM "WEBHOST"
   LOOP
      b := b || r;        -- this, too
   END LOOP;

   RAISE NOTICE '%', b;   -- get feedback
   RETURN 33;
END
$func$  LANGUAGE plpgsql; -- and lose the quotes

%rowtype आम तौर पर आवश्यक नहीं है। आम तौर पर, किसी तालिका का संबद्ध पंक्ति प्रकार उसी नाम के प्रकार के रूप में उपलब्ध होता है।

और नहीं करें भाषा का नाम उद्धृत करें।

और आप plpgsql में केवल स्टैंड-अलोन फ़ंक्शन कॉल नहीं कर सकते। . इसके बजाय एक असाइनमेंट का उपयोग करना।

Postgres में CaMeL- केस आइडेंटिफ़ायर का उपयोग करना भी एक अच्छा विचार नहीं है। अपने जीवन को आसान बनाने के लिए कानूनी, लोअर-केस आइडेंटिफ़ायर का उपयोग करें।

आखिरी के लिए सर्वश्रेष्ठ :यह समग्र फ़ंक्शन array_agg() :

CREATE OR REPLACE FUNCTION for_example()
  RETURNS integer AS
$func$
DECLARE
   b "WEBHOST"[];
BEGIN
   SELECT array_agg(tbl) INTO b FROM "WEBHOST" tbl;       

   RAISE NOTICE '%', b;
   RETURN 33;
END
$func$  LANGUAGE plpgsql;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ट्रिगर्स बनाम जेपीए @PrePersist टाइमस्टैम्प के निर्माण और अद्यतन के लिए पेशेवरों और विपक्ष

  2. PostgreSQL के लिए जेनरेट किए गए कॉलम का अवलोकन

  3. दो तिथियों के बीच अंतर postgresql एक्सेल प्रारूप में

  4. PostgreSQL अनुक्रमणिका आकार और मान संख्या

  5. हेरोकू और रेल:पोस्टग्रेज के साथ जेम लोड त्रुटि, हालांकि यह GEMFILE में निर्दिष्ट है