Oracle डेटाबेस के साथ SQLcl का उपयोग करते समय, आप अपने क्वेरी परिणामों को SPOOL
के साथ XML फ़ाइल में निर्यात कर सकते हैं आदेश।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:
SET SQLFORMAT xml;
SPOOL '/Users/barney/data/regions.xml';
SELECT * FROM regions;
SPOOL off;
SET SQLFORMAT ansiconsole;
लाइन दर लाइन इसने क्या किया:
- पहली पंक्ति
SQLFORMAT
सेट करती है करने के लिएxml
. यह सुनिश्चित करता है कि हमारा परिणामी.xml
फ़ाइल में वास्तव में एक्सएमएल होता है। - दूसरी पंक्ति में
SPOOL
. का प्रयोग किया गया है यह निर्दिष्ट करने के लिए आदेश दें कि आउटपुट फ़ाइल कहाँ लिखी जाएगी।/Users/barney/data/regions.xml
change को बदलना सुनिश्चित करें आपके सिस्टम पर किसी स्थान पर, और एक उपयुक्त फ़ाइल नाम पर। - तीसरी पंक्ति में, मैंने SQL क्वेरी चलाई - जिसके परिणाम मैं निर्यात कर रहा हूं। इस मामले में, मैंने पूरे
regions
. का निर्यात किया टेबल. - अगला, मैं
SPOOL
बदल गया बंद। - आखिरकार, मैंने
SQLFORMAT
सेट किया है मेरी मूल सेटिंग पर वापस, जोansiconsole
. थी . यह वैकल्पिक है - आप इसेjson
. पर छोड़ सकते हैं अगर आप चाहें, या इसे किसी और चीज़ में बदल दें।
यहाँ परिणामी फ़ाइल कैसी दिखती है:
<?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[1]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Europe]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[2]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Americas]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[3]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Asia]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[4]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Middle East and Africa]]></COLUMN> </ROW> </RESULTS> 4 rows selected.
फ़ीडबैक निकालें
आप X rows selected
SET FEEDBACK off
:
SET SQLFORMAT xml;
SET FEEDBACK off;
SPOOL '/Users/barney/data/regions_feedback_off.xml';
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;
परिणाम:
<?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[1]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Europe]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[2]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Americas]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[3]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Asia]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[4]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Middle East and Africa]]></COLUMN> </ROW> </RESULTS>
इस मामले में मैंने FEEDBACK
को बदल दिया फ़ाइल निर्यात करने के बाद वापस चालू करें।
परिणाम जोड़ें
डिफ़ॉल्ट रूप से, SPOOL
REPLACE
. का उपयोग करता है , जो फ़ाइल को बदल देता है यदि वह पहले से मौजूद है।
हालांकि, हम APPEND
. का उपयोग कर सकते हैं फ़ाइल में परिणाम जोड़ने का तर्क।
उदाहरण:
SET SQLFORMAT xml;
SET FEEDBACK off;
SPOOL '/Users/barney/data/regions_feedback_off.xml' APPEND;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;
परिणामी फ़ाइल:
<?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[1]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Europe]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[2]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Americas]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[3]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Asia]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[4]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Middle East and Africa]]></COLUMN> </ROW> </RESULTS> <?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[1]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Europe]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[2]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Americas]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[3]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Asia]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[4]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Middle East and Africa]]></COLUMN> </ROW> </RESULTS>
इस उदाहरण ने परिणामों को उस फ़ाइल में जोड़ा जो पिछले उदाहरण में बनाई गई थी (और आबाद थी)। इसके परिणामस्वरूप क्वेरी आउटपुट को फ़ाइल में डुप्लीकेट किया जा रहा है।
मौजूदा फ़ाइल को अधिलेखित करें
हम REPLACE
. का उपयोग कर सकते हैं नई क्वेरी के परिणामों के साथ मौजूदा फ़ाइल को अधिलेखित करने के लिए:
SET SQLFORMAT xml;
SET FEEDBACK off;
SPOOL '/Users/barney/data/regions_feedback_off.xml' REPLACE;
SELECT * FROM regions;
SPOOL off;
SET FEEDBACK on;
SET SQLFORMAT ansiconsole;
परिणामी फ़ाइल:
<?xml version='1.0' encoding='UTF-8' ?> <RESULTS> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[1]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Europe]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[2]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Americas]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[3]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Asia]]></COLUMN> </ROW> <ROW> <COLUMN NAME="REGION_ID"><![CDATA[4]]></COLUMN> <COLUMN NAME="REGION_NAME"><![CDATA[Middle East and Africa]]></COLUMN> </ROW> </RESULTS>
जैसा कि बताया गया है, REPLACE
डिफ़ॉल्ट सेटिंग है, इसलिए हम इस तर्क को पूरी तरह से छोड़ सकते थे।