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

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

Oracle डाटाबेस में, JSON_OBJECT() फ़ंक्शन कुंजी-मूल्य जोड़े या एक ऑब्जेक्ट प्रकार उदाहरण के अनुक्रम से JSON ऑब्जेक्ट बनाता है।

सिंटैक्स

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

JSON_OBJECT
  ( [ [ KEY ] key_expr VALUE val_expr [ FORMAT JSON ]
     ,]...
    [ JSON_on_null_clause ] [ JSON_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 ऑब्जेक्ट में अद्वितीय कुंजियाँ होती हैं।

उदाहरण

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

SELECT JSON_OBJECT(KEY 'score' VALUE 37) FROM DUAL;

परिणाम:

{"score":37}

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

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

परिणाम:

{"score":37}

एकाधिक कुंजी/मान जोड़े

यहां एक से अधिक कुंजी/मान युग्मों के साथ एक उदाहरण दिया गया है:

SELECT JSON_OBJECT(
    KEY 'fname' VALUE 'Homer',
    KEY 'lname' VALUE 'Escobar',
    KEY 'score' VALUE 237
    ) 
FROM DUAL;

परिणाम:

{"fname":"Homer","lname":"Escobar","score":237}

नेस्टेड JSON

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

उदाहरण:

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

परिणाम:

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

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

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

परिणाम:

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

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

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

SELECT *
FROM regions;

परिणाम:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

यहां वही क्वेरी है, लेकिन चयनित कॉलम JSON_OBJECT() को पास कर दिए गए हैं समारोह:

SELECT JSON_OBJECT(*) 
FROM regions;

परिणाम:

{"REGION_ID":1,"REGION_NAME":"Europe"}                    
{"REGION_ID":2,"REGION_NAME":"Americas"}                  
{"REGION_ID":3,"REGION_NAME":"Asia"}                      
{"REGION_ID":4,"REGION_NAME":"Middle East and Africa"}

और यहाँ यह फ़ंक्शन के लिए केवल एक कॉलम पास किया गया है:

SELECT JSON_OBJECT(region_name) 
FROM regions;

परिणाम:

{"region_name":"Europe"}                    
{"region_name":"Americas"}                  
{"region_name":"Asia"}                      
{"region_name":"Middle East and Africa"} 

इस फ़ंक्शन की अधिक विस्तृत व्याख्या के लिए 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 में डेटाटाइम प्रारूप तत्वों की सूची

  2. OraOLEDB.Oracle प्रदाता स्थानीय मशीन पर पंजीकृत नहीं है

  3. सही उपयोगकर्ता नाम और पासवर्ड देकर, ORA-01017 प्राप्त करें:अमान्य उपयोगकर्ता नाम/पासवर्ड; लॉगऑन अस्वीकृत

  4. ओरेकल के एंटिटी फ्रेमवर्क समर्थन के साथ पास्कल केस को कैसे बल दें?

  5. ORA-00911:अमान्य वर्ण