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

JSON_OBJECTAGG () Oracle में फ़ंक्शन

Oracle डाटाबेस में, JSON_OBJECTAGG() फ़ंक्शन की-वैल्यू पेयर से JSON ऑब्जेक्ट बनाता है।

सामान्यतया, गुण कुंजी, गुण मान, या दोनों SQL अभिव्यक्तियों के स्तंभ हैं।

सिंटैक्स

वाक्य रचना इस प्रकार है:

JSON_OBJECTAGG
  ( [ KEY ] string VALUE expr [ FORMAT JSON ]
    [ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
    [ STRICT ] [ WITH UNIQUE KEYS ]
  )

कहां:

  • [ KEY ] key_expr VALUE val_expr गुण कुंजी-मान युग्म निर्दिष्ट करता है।
  • FORMAT JSON इंगित करता है कि इनपुट स्ट्रिंग JSON है, और इसलिए इसे आउटपुट में उद्धृत नहीं किया जाएगा।
  • JSON_on_null_clause उपयोग करने के लिए व्यवहार निर्दिष्ट करता है जब expr शून्य के बराबर है (यानी या तो आउटपुट में शून्य मान शामिल करें या नहीं)।
  • JSON_returning_clause वापसी मूल्य के प्रकार को निर्दिष्ट करता है।
  • STRICT जाँचता है कि JSON जनरेशन फ़ंक्शन का आउटपुट सही JSON है या नहीं। यदि चेक विफल हो जाता है, तो सिंटैक्स त्रुटि उत्पन्न हो जाती है।
  • WITH UNIQUE KEYS गारंटी देता है कि जनरेट किए गए JSON ऑब्जेक्ट में अद्वितीय कुंजियाँ होती हैं।

उदाहरण

यह कैसे काम करता है यह दिखाने के लिए यहां एक उदाहरण दिया गया है:

DUAL से
SELECT JSON_OBJECTAGG(KEY 'score' VALUE 37) FROM DUAL;

परिणाम:

{"score":37}

KEY भाग वैकल्पिक है, इसलिए निम्नलिखित समान परिणाम प्राप्त करता है:

SELECT JSON_OBJECTAGG('score' VALUE 37) FROM DUAL;

परिणाम:

{"score":37}

नेस्टेड JSON

यदि आपके द्वारा पास किए गए मानों में से एक में JSON है, तो आप FORMAT JSON . का उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए तर्क कि इसमें JSON है और इसे आउटपुट में उद्धृत नहीं किया जाना चाहिए।

उदाहरण:

SELECT JSON_OBJECTAGG(
    KEY 'details' 
    VALUE '{"name": "Peter", "score": 64}' 
    FORMAT JSON
    ) 
FROM DUAL;

परिणाम:

{"details":{"name": "Peter", "score": 64}}

अगर हम FORMAT JSON . को हटा देते हैं, तो यहां बताया गया है भाग:

SELECT JSON_OBJECTAGG(
    KEY 'details' 
    VALUE '{"name": "Peter", "score": 64}'
    ) 
FROM DUAL;

परिणाम:

{"details":"{\"name\": \"Peter\", \"score\": 64}"} 

डेटाबेस उदाहरण

JSON_OBJECTAGG() फ़ंक्शन का उपयोग आमतौर पर डेटाबेस कॉलम में मानों के आधार पर JSON दस्तावेज़ बनाने के लिए किया जाता है।

मान लीजिए कि हम निम्नलिखित क्वेरी चलाते हैं:

SELECT *
FROM jobs
WHERE min_salary > 9000;

परिणाम:

    JOB_ID                        JOB_TITLE    MIN_SALARY    MAX_SALARY 
__________ ________________________________ _____________ _____________ 
AD_PRES    President                                20000         40000 
AD_VP      Administration Vice President            15000         30000 
SA_MAN     Sales Manager                            10000         20000

यहां एक उदाहरण दिया गया है कि हम JSON_OBJECTAGG() . का उपयोग कैसे कर सकते हैं उपरोक्त दो कॉलम से JSON दस्तावेज़ तैयार करने के लिए कार्य करता है:

SELECT JSON_OBJECTAGG(KEY job_id VALUE min_salary) 
FROM jobs
WHERE min_salary > 9000;

परिणाम:

{"AD_PRES":20000,"AD_VP":15000,"SA_MAN":10000}

इस मामले में, job_id कॉलम कुंजी है, और min_salary कॉलम मान है।

इस फ़ंक्शन की अधिक विस्तृत व्याख्या के लिए Oracle के दस्तावेज़ देखें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle तालिका/स्तंभ/सूचकांक नाम 30 वर्णों तक सीमित क्यों हैं?

  2. ओरेकल:डीडीएल और लेनदेन रोलबैक

  3. Oracle कई स्तंभों को एक में मिलाता है

  4. Oracle एपेक्स में फ़ाइलें आयात करना wwv_flow_files का उपयोग करना

  5. मैं एक .NET अनुप्रयोग कैसे परिनियोजित कर सकता हूँ जो उपयोगकर्ता के लिए संपूर्ण घटक स्थापित किए बिना ODAC का उपयोग करता है?