- क्या PostgreSQL दो ~प्रक्रियाओं के बीच एक जुड़ाव कर सकता है जहां कॉलम रनटाइम तक ज्ञात नहीं हैं?
मूल उत्तर सरल है क्योंकि वर्तमान में कोई संग्रहीत कार्यविधियां नहीं हैं Postgres में (Postgres 10 तक), बस फंक्शन - जो लगभग समान कार्यक्षमता प्रदान करते हैं, जैसा कि आपने प्रश्न में निर्धारित किया है।
और किसी भी फ़ंक्शन का उपयोग FROM
. में किया जा सकता है SELECT
. का खंड किसी अन्य तालिका की तरह क्वेरी करें।
अपडेट:
SQL प्रक्रियाएं ("संग्रहीत कार्यविधियां") Postgres 11 के साथ पेश की गई हैं।CREATE PROCEDURE
के लिए मैनुअल .
SQL स्वयं रनटाइम पर रिटर्न प्रकार जानने की मांग करता है। एक सीमा-मामला . है :आप बहुरूपी प्रकार . का उपयोग करके फ़ंक्शन कॉल के साथ वापसी प्रकार घोषित कर सकते हैं . विस्तृत निर्देश यहाँ (आखिरी अध्याय आपके लिए सबसे अधिक प्रासंगिक है):
- एक PL/pgSQL फ़ंक्शन को रिफ़ैक्टर करें ताकि विभिन्न SELECT क्वेरीज़ का आउटपुट लौटाया जा सके
- क्या यह बाहरी तृतीय पक्ष डेटाबेस (शायद विदेशी डेटा रैपर या किसी अन्य तंत्र के माध्यम से) में संग्रहीत प्रक्रियाओं का उपयोग करने के अलावा भी ऐसा ही कर सकता है?
यह एक नहीं है , भी, उसी सिद्धांत पर आधारित। यदि आप विदेशी तालिकाओं का उपयोग करते हैं, तो आपको एक या दूसरे तरीके से स्पष्ट रूप से परिभाषित रिटर्न प्रकार प्रदान करना होगा।
आप शायद एसक्यूएल-सर्वर-संग्रहीत-प्रक्रिया के परिणामस्वरूप पूरी पंक्ति को एक टैब-सीमांकित पाठ प्रतिनिधित्व में लंप करने में सक्षम हो, लेकिन फिर (त्रुटि-प्रवण और अक्षम होने के अलावा) आपके पास एक एकल कॉलम है और व्यक्तिगत कॉलम को परिभाषित करने वाली मेटा जानकारी की आवश्यकता है कॉलम निकालने का एक या दूसरा तरीका - कैच 22.