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

क्या नोड-पोस्टग्रेज एकाधिक परिणामों का समर्थन करता है

अपडेट करें :देखें यह बेहतरीन ट्यूटोरियल पुनर्खरीदकर्ताओं को लाने और प्रबंधित करने के तरीके के स्पष्टीकरण के लिए।

चूंकि नोड-पोस्टग्रेज उन रिफर्सर्स को नहीं पहचान रहा है जिन्हें आप परिणाम सेट हैंडल के रूप में वापस कर रहे हैं, ऐसा लगता है कि यह पोस्टग्रेएसक्यूएल से एकाधिक परिणाम सेट का समर्थन नहीं करता है। यह काफी उचित है क्योंकि PostgreSQL वास्तव में कई परिणाम सेटों का समर्थन नहीं करता है, वे केवल refcursors के साथ अनुकरण किए जाते हैं।

आप FETCH कर सकते हैं एक refcursor . से SQL-स्तरीय कर्सर कमांड के माध्यम से SQL-स्तर कर्सर कमांड , हालांकि इसके लिए प्रलेखन दयनीय है। आपको PL/PgSQL का उपयोग करने की आवश्यकता नहीं है इसे करने के लिए कर्सर हैंडलिंग। बस:

FETCH ALL FROM "<unnamed portal 1>";

दोहरे उद्धरण चिह्नों पर ध्यान दें, जो महत्वपूर्ण हैं। <unnamed portal 1> के लिए अपने फ़ंक्शन से लौटाए गए refcursor नाम को उपशीर्षक दें ।

यह भी ध्यान दें कि जब तक कर्सर WITH HOLD नहीं बनाया गया था, तब तक refcursor बनाने वाला लेन-देन खुला होना चाहिए . गैर-HOLD लेन-देन करने या वापस रोल करने पर कर्सर बंद हो जाते हैं।

उदाहरण के लिए, डमी रिफकर्सर-रिटर्निंग फ़ंक्शन दिया गया:

CREATE OR REPLACE FUNCTION dummy_cursor_returning_fn() RETURNS SETOF refcursor AS $$
DECLARE
    curs1 refcursor;
    curs2 refcursor;
BEGIN
    OPEN curs1 FOR SELECT generate_series(1,4);
    OPEN curs2 FOR SELECT generate_series(5,8);
    RETURN NEXT curs1;
    RETURN NEXT curs2;
    RETURN;
END;
$$ LANGUAGE 'plpgsql';

... जो कर्सर का एक सेट लौटाता है, आप पोर्टल नामों को FETCH पर पास करके परिणाम प्राप्त कर सकते हैं , जैसे:

regress=# BEGIN;
BEGIN
regress=# SELECT dummy_cursor_returning_fn();
 dummy_cursor_returning_fn 
---------------------------
 <unnamed portal 7>
 <unnamed portal 8>
(2 rows)

regress=# FETCH ALL FROM "<unnamed portal 7>";
 generate_series 
-----------------
               1
               2
               3
               4
(4 rows)

regress=# FETCH ALL FROM "<unnamed portal 8>";
 generate_series 
-----------------
               5
               6
               7
               8
(4 rows)

regress=# 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज 10 . का उपयोग करते समय अद्यतन में सेट-रिटर्न फ़ंक्शन की अनुमति नहीं है

  2. Php में Postgresql के साथ श्वेतसूची और तैयार-कथन का उपयोग कैसे करें?

  3. स्प्रिंगबूट पोस्टग्रेज उपयुक्त ड्राइवर वर्ग निर्धारित करने में विफल

  4. क्या मैं हरोकू पीजी बैकअप ऐड-ऑन का उपयोग करके बैकअप शेड्यूल कर सकता हूं?

  5. डेटाबेस माइग्रेट करने वाली रेल + पोस्टजीआईएस त्रुटियाँ