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

SQLcl का उपयोग करते समय Oracle क्वेरी परिणामों को JSON फ़ाइल में कैसे निर्यात करें

Oracle डेटाबेस के साथ SQLcl का उपयोग करते समय, आप अपने क्वेरी परिणामों को SPOOL के साथ JSON फ़ाइल में निर्यात कर सकते हैं आदेश।

उदाहरण

यहां एक उदाहरण दिया गया है जो पूरी तालिका को निर्यात करता है:

SET SQLFORMAT json;
SPOOL '/Users/barney/data/regions.json';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole;

लाइन दर लाइन इसने क्या किया:

  • पहली पंक्ति SQLFORMAT सेट करती है करने के लिए json . यह सुनिश्चित करता है कि हमारा परिणामी .json फ़ाइल में वास्तव में JSON होता है। आप वैकल्पिक रूप से json-formatted . का उपयोग कर सकते हैं JSON को अधिक मानव अनुकूल प्रारूप में आउटपुट करने के लिए (इस पर बाद में अधिक)।
  • दूसरी पंक्ति में SPOOL . का प्रयोग किया गया है यह निर्दिष्ट करने के लिए आदेश दें कि आउटपुट फ़ाइल कहाँ लिखी जाएगी। /Users/barney/data/regions.json . को बदलना सुनिश्चित करें आपके सिस्टम पर किसी स्थान पर, और एक उपयुक्त फ़ाइल नाम पर।
  • तीसरी पंक्ति में, मैंने SQL क्वेरी चलाई - जिसके परिणाम मैं निर्यात कर रहा हूं। इस मामले में, मैंने पूरे regions . का निर्यात किया टेबल.
  • अगला, मैं SPOOL बदल गया बंद।
  • आखिरकार, मैंने SQLFORMAT सेट किया है मेरी मूल सेटिंग पर वापस, जो ansiconsole . थी . यह वैकल्पिक है - आप इसे json . पर छोड़ सकते हैं अगर आप चाहें, या इसे किसी और चीज़ में बदल दें।

यहाँ परिणामी फ़ाइल कैसी दिखती है:

{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
[
{"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"}
]}]}
4 rows selected. 

जैसा कि उल्लेख किया गया है, आपके पास json-formatted . का उपयोग करने का विकल्प भी है JSON को अधिक मानव-अनुकूल प्रारूप में, इंडेंट आदि के साथ आउटपुट करने के लिए। मैंने इस लेख के निचले भाग में इसका एक उदाहरण शामिल किया है।

फ़ीडबैक निकालें

आप X rows selected SET FEEDBACK off :

SET SQLFORMAT json;
SET FEEDBACK off;
SPOOL '/Users/barney/data/regions_feedback_off.json';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;

परिणाम:

{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
[
{"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"}
]}]}

इस मामले में मैंने FEEDBACK को बदल दिया फ़ाइल निर्यात करने के बाद वापस चालू करें।

परिणाम जोड़ें

डिफ़ॉल्ट रूप से, SPOOL REPLACE . का उपयोग करता है , जो फ़ाइल को बदल देता है यदि वह पहले से मौजूद है।

हालांकि, हम APPEND . का उपयोग कर सकते हैं फ़ाइल में परिणाम जोड़ने का तर्क।

उदाहरण:

SET SQLFORMAT json;
SET FEEDBACK off;
SPOOL '/Users/barney/data/regions_feedback_off.json' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;

परिणामी फ़ाइल:

{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
[
{"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"}
]}]}
{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
[
{"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"}
]}]}

इस उदाहरण ने परिणामों को उस फ़ाइल में जोड़ दिया जो पिछले उदाहरण में बनाई गई थी (और आबाद थी)। इसके परिणामस्वरूप क्वेरी आउटपुट को फ़ाइल में डुप्लीकेट किया जा रहा है।

मौजूदा फ़ाइल को अधिलेखित करें

हम REPLACE . का उपयोग कर सकते हैं नई क्वेरी के परिणामों के साथ मौजूदा फ़ाइल को अधिलेखित करने के लिए:

SET SQLFORMAT json;
SET FEEDBACK off;
SPOOL '/Users/barney/data/regions_feedback_off.json' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;

परिणामी फ़ाइल:

{"results":[{"columns":[{"name":"REGION_ID","type":"NUMBER"},{"name":"REGION_NAME","type":"VARCHAR2"}],"items":
[
{"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"}
]}]}

जैसा कि बताया गया है, REPLACE डिफ़ॉल्ट सेटिंग है, इसलिए हम इस तर्क को पूरी तरह से छोड़ सकते थे।

जेएसओएन फ़ॉर्मैट किया गया

आप वैकल्पिक रूप से json-formatted . का उपयोग कर सकते हैं JSON को अधिक मानव अनुकूल प्रारूप में आउटपुट करने के लिए:

SET SQLFORMAT json-formatted;
SPOOL '/Users/barney/data/regions_formatted.json';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole;

परिणाम:

{
  "results" : [
    {
      "columns" : [
        {
          "name" : "REGION_ID",
          "type" : "NUMBER"
        },
        {
          "name" : "REGION_NAME",
          "type" : "VARCHAR2"
        }
      ],
      "items" : [
        {
          "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"
        }
      ]
    }
  ]
}

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रोग्रामिंग में व्यक्ति के नाम का कैपिटलाइज़ेशन

  2. जब हम हॉट बैकअप लेते हैं तो Oracle द्वारा अनुसरण किया जाने वाला तंत्र

  3. SQL*Plus . में Oracle क्रिएट टेबल स्टेटमेंट कैसे प्राप्त करें?

  4. एसक्यूएल सिलेक्ट सिंबल क्या करता है || अर्थ?

  5. Oracle :एक ही पंक्ति के विभिन्न स्तंभों से अधिकतम मान का चयन करें