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

ऑल-इन-वन डायनेमिक क्वेरी के लिए PL/pgSQL

क्या आप कृपया कुछ टेबल परिभाषाएं और नमूना क्वेरी पोस्ट कर सकते हैं जो आप करने का प्रयास कर रहे हैं? मुझे 100% यकीन नहीं है कि आप क्या कर रहे हैं, लेकिन संग्रहीत प्रक्रियाओं/कार्यों का उपयोग करके "गतिशील" SQL के कुछ रूप हैं:

  1. एक फ़ंक्शन बनाएं जो इनपुट पैरामीटर (यानी श्रेणी प्रकार, शैली आईडी, ईवेंटनाम, क्षेत्र आईडी) लेता है और उन मानों को "स्थिर" SQL अनुरोध में प्लग करता है। यहां आपके मामले के लिए एक नमूना क्वेरी स्निपेट दिया गया है:

यहाँ एक वास्तविक उदाहरण है:

CREATE OR REPLACE FUNCTION SP_IGLGetItem(
    pItemId INTEGER
) 
RETURNS TABLE(
    ItemId INTEGER,
    ItemName VARCHAR(100),
    ItemCategory CHAR(2) 
AS
$$
BEGIN
    RETURN QUERY
    SELECT i.ItemId, i.ItemName, i.ItemCategory
    FROM Item i
    WHERE (i.ItemId = pItemId OR pItemId IS NULL) -- Return single item (if specified, otherwise return all)
    ;
END;
$$
LANGUAGE 'plpgsql';
  1. एसक्यूएल युक्त एक स्ट्रिंग बनाएं जिसे आप विभिन्न स्थितियों, पैरामीटर मानों आदि के आधार पर गतिशील रूप से निष्पादित करना चाहते हैं। यह उतना ही गतिशील है जितना आप प्राप्त कर सकते हैं।

  2. अपने इनपुट पैरामीटर के मानों के आधार पर अलग-अलग "स्थिर" SQL कथन सशर्त रूप से चलाएं।

क्या इनमें से कोई आपकी स्थिति से मेल खाता है?

पीएल/पीजीएसक्यूएल केवल पोस्टग्रेज में संग्रहीत प्रक्रियाओं/कार्यों को लिखने के लिए उपयोग की जाने वाली भाषा है। यदि आपको वास्तव में गतिशील एसक्यूएल पीढ़ी की आवश्यकता है, तो आप पीएल/पीजीएसक्यूएल का उपयोग करके एक फ़ंक्शन लिखना सबसे अच्छा शर्त है।

एक अन्य विकल्प है कि आप अपने क्लाइंट एप्लिकेशन में जो एसक्यूएल चाहते हैं उसे गतिशील रूप से जेनरेट करें और फिर उस एसक्यूएल को सीधे निष्पादित करने के लिए सबमिट करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उसकेोकू पर पोस्टग्रेएसक्यूएल डीबी में 255 से अधिक वर्णों को संग्रहीत करना

  2. SQLAlchemy घोषणात्मक:ट्रिगर्स और इंडेक्स को परिभाषित करना (पोस्टग्रेज 9)

  3. स्वत:पूर्ण फ़ील्ड के लिए समान UTF-8 स्ट्रिंग्स

  4. डेटाबेस में विशिष्टता सत्यापन जब सत्यापन की एक शर्त होती है

  5. LIMIT 1 . के साथ अनुक्रमित ORDER BY