के बजाय एक कॉलम के रूप में एकाधिक कॉलम लौटाता है, मैं वर्तमान में पोस्टग्रेस्क्ल 9.04 में एक फ़ंक्शन लिख रहा हूं, जहां मैं एक चर का उपयोग करने का प्रयास कर रहा हूं जिसका चयन एक कथन में किया जाएगा, फिर परिणाम लौटाएं।फ़ंक्शन एकाधिक कॉलम
मैं जिस कथन के साथ आया हूं वह सरल और काम करता है; हालांकि, सभी कॉलम एकाधिक कॉलम के बजाय एक कॉलम पर आउटपुट कर रहे हैं।
"(6,"test project","inbound","inbound test","processing")"
मैं यह इतना परिणाम एक साथ concatenated नहीं कर रहे हैं कि कैसे बनाने के लिए और प्रत्येक स्तंभ आइटम अलग से लौट सकते हैं:
create or replace function foo(IN pID integer, OUT project_id integer, OUT project_name text, OUT project_type text, OUT project_description text, OUT project_status text)
returns setof record as
$$
select project_id, project_name, project_type, project_description, project_status from t_projects
where project_id = $1;
$$
LANGUAGE SQL;
select foo(6) -- runs function
वर्तमान आउटपुट इस तरह दिखता है:
यहाँ मेरी समारोह है?
अग्रिम धन्यवाद।
select * from foo(6);
जो कुछ इस तरह वापस आ जाएगी:
project_id | project_name | project_type | project_description | project_status
-----------|--------------|--------------|---------------------|----------------
6 | test project | inbound | inbound test | processing
यह postgres है कि यह दोनों तरीकों से कहा जा सकता है की एक मोड़ है और आप एक देने के
आपके पास 'सेट ऑफ रिकॉर्ड' का रिटर्न प्रकार क्यों है, जबकि 'आउट' कॉलम को ' SELECT'? क्या आप रिकॉर्ड वापस करने का इरादा रखते हैं, या 'आउट' पैरामीटर को पॉप्युलेट करते हैं? आपको एक दृष्टिकोण चुनना चाहिए, दोनों नहीं। – cdhowie
postgresql अभी भी मेरे लिए नया है क्योंकि मुझे माइक्रोसॉफ्ट एसक्यूएल एरवर में काम करने के लिए उपयोग किया जाता है। आदर्श रूप से, मैं चयन विवरण से परिणाम वापस करना चाहता हूं। मेरी Google खोजों में मैंने पाया कि लोग नामित आउटपुट के साथ एक प्रकार का निर्माण करेंगे या आउटपुट को फ़ंक्शन में रखेंगे। वर्तमान में, मैं अभी भी postgresql के समझ चरण में हूं :) – richh