अस्थायी तालिका
शीर्षक में अपने प्रश्न का उत्तर देने के लिए:
एक नहीं "पोस्टग्रेस फ़ंक्शन से एक अस्थायी तालिका लौटाएं"। अस्थायी टेबल बनाई गई हैं
और उसी सत्र में उसी उपयोगकर्ता को स्वतः दिखाई देने लगता है. सत्र के अंत में (या इससे पहले) वे स्वचालित रूप से हटा दिए जाते हैं।
टेबल फ़ंक्शन
लेकिन एक सेट-रिटर्निंग फ़ंक्शन (a.k.a. "टेबल फ़ंक्शन") का उपयोग तालिका की तरह ही किया जा सकता है:
CREATE OR REPLACE FUNCTION getresourceinfo(tablename regclass, opened_path int)
RETURNS TABLE (pathid int, name varchar, pbs varchar
, parentid varchar, resid int) AS
$func$
BEGIN
RETURN QUERY EXECUTE format(
'SELECT t.pathid, t.name, t.pbs, t.parentid, t.resid
FROM ' || tablename || ' t
WHERE t.opened_path = $1'
)
USING opened_path;
END
$func$ LANGUAGE plpgsql;
केवल उन तालिकाओं के समूह के लिए समझ में आता है जो सभी हार्ड कोडित कॉलम नामों को समान डेटा प्रकार के साथ साझा करते हैं।
कॉल करें (जैसे किसी तालिका से चयन करना):
SELECT * FROM getresourceinfo(1, 'my_schema.my_tbl')
डेटा प्रकार क्यों regclass
तालिका पैरामीटर के लिए?
तालिका नाम PostgreSQL फ़ंक्शन पैरामीटर के रूप में
कर्सर
पूर्णता के लिए:कोई एक CURSOR
लौटा सकता है , जो एक बहुत ही समान अवधारणा होगी जो आप मांगते हैं। यहाँ मैनुअल में विवरण।
लेकिन मैं शायद ही कभी कर्सर का उपयोग करता हूं। तालिका के कार्य अधिकांश समय अधिक व्यावहारिक होते हैं।