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

पीएल/पीजीएसक्यूएल में `रिटर्न नेक्स्ट` का सही तरीके से उपयोग कैसे करें?

दिए गए उदाहरण को RETURN QUERY . से पूरी तरह बदला जा सकता है :

BEGIN
    RETURN QUERY SELECT y_.y, 'hi' FROM generate_series(1,10,1) AS y_(y)
END;

जो एक लॉट . होगा तेज़।

सामान्य तौर पर आपको जहां भी संभव हो पुनरावृत्ति से बचना चाहिए, और इसके बजाय सेट-उन्मुख संचालन का पक्ष लेना चाहिए।

जहां return next एक लूप पर अपरिहार्य है (जो बहुत दुर्लभ है, और अधिकतर जब आपको अपवाद हैंडलिंग की आवश्यकता होती है) तो आपको OUT सेट करना होगा पैरामीटर मान या तालिका पैरामीटर, फिर return next बिना तर्क के।

इस मामले में आपकी समस्या लाइन है SELECT yr.y, 'hi'; जो कुछ नहीं करता। आप मान रहे हैं कि SELECT . का निहित गंतव्य out पैरामीटर है, लेकिन ऐसा नहीं है। आपको आउट पैरामीटर का उपयोग लूप वैरिएबल के रूप में करना होगा जैसे @peterm ने किया, असाइनमेंट का उपयोग करें या SELECT INTO का उपयोग करें :

FOR yr IN SELECT * FROM generate_series(1,10,1) AS y_(y) 
LOOP
    RAISE NOTICE 'Computing %', yr.y;
    y := yr.y;
    result := 'hi';
    RETURN NEXT;
END LOOP;
RETURN;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मुझे CSV आयात करते समय postgresql में टाइप पूर्णांक के लिए अमान्य इनपुट सिंटैक्स क्यों मिल रहा है?

  2. pgFincore 1.2, एक PostgreSQL एक्सटेंशन

  3. उच्च उपलब्धता के लिए PostgreSQL स्ट्रीमिंग प्रतिकृति के साथ Odoo 12 को कैसे क्लस्टर करें

  4. PostgreSQL - BYTEA कॉलम में बेस 64 इमेज स्ट्रिंग्स कैसे डालें?

  5. क्या रेगेक्स पैटर्न वाले टेक्स्ट कॉलम को उपयोगी रूप से इंडेक्स करने का कोई तरीका है?