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

PostgreSQL फ़ंक्शन में इनपुट पैरामीटर के रूप में उपयोगकर्ता परिभाषित प्रकार

SQL क्वेरी से फ़ंक्शन को कॉल करने के लिए, आपको निम्न उदाहरण के अनुसार पैरामीटर को अपने कस्टम प्रकार में डालना होगा।

select form_insertion(array[
    cast(row('Form 1', 1, current_date, 1, current_date, 'This is form 1', 
        array[
            cast(row('section-1', 'Section One', 1) as section),
            cast(row('section-2', 'Section Two', 2) as section),
            cast(row('section-3', 'Section Three', 3) as section)
        ]
    ) as form_details),
    cast(row('Form 2', 2, current_date, 1, current_date, 'This is form 2', 
        array[
            cast(row('section-2', 'Section Two', 2) as section),
            cast(row('section-3', 'Section Three', 3) as section)
        ]
    ) as form_details),
    cast(row('Form 3', 1, current_date, 1, current_date, 'This is form 3', 
        array[
            cast(row('section-1', 'Section One', 1) as section),
            cast(row('section-3', 'Section Three', 3) as section)
        ]
    ) as form_details)
])

ध्यान दें कि PostgreSQL सरणियों में .COUNT संपत्ति नहीं है। आप array_upper समारोह:

for i IN 1..array_upper(formdetails, 1)
LOOP 
   -- your code here
END LOOP;

PostgreSQL 9.1 के बाद से, आप सरणी के माध्यम से लूप करने के लिए FOREACH कथन का उपयोग कर सकते हैं:

create or replace function form_insertion(formdetails form_details[])
    returns varchar as $$
declare
    detail form_details;
    sec section;
begin
    foreach detail in array formdetails
    LOOP 
       RAISE NOTICE '%', detail.formName;

       foreach sec in array detail.sections
       LOOP
         raise NOTICE '%', sec.sectionName;
       END LOOP;
    END LOOP;
    return '';
end;$$
    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. पोस्टग्रेएसक्यूएल - संग्रहित प्रक्रिया में गतिशील एसक्यूएल लिखना जो परिणाम सेट देता है

  2. क्या एनएलटीके का उपयोग पोस्टग्रेज पायथन संग्रहीत प्रक्रिया में किया जा सकता है

  3. PostgreSQL में एन्क्रिप्टेड पासवर्ड के साथ उपयोगकर्ता बनाना

  4. PostgreSQL उच्च उपलब्धता संस्थापन Patroni

  5. 1 दिन 01:30:00 जैसे अंतराल को 25:30:00 में कैसे बदलें?