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" } ] } ] }