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

SQLcl (Oracle) में CSV फ़ाइल में क्वेरी परिणाम कैसे निर्यात करें

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

उदाहरण

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

SET SQLFORMAT csv
SPOOL '/Users/barney/data/countries.csv';
SELECT * FROM countries;
SPOOL off;
SET SQLFORMAT ansiconsole

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

  1. मेरी पहली पंक्ति SQLFORMAT सेट करती है करने के लिए csv . यह सुनिश्चित करता है कि आउटपुट वास्तव में अल्पविराम से अलग है। अगर मैंने ऐसा नहीं किया, तो मुझे .csv . वाली फ़ाइल मिल सकती है एक्सटेंशन, लेकिन ऐसी सामग्री के साथ जो अल्पविराम से अलग नहीं है।
  2. दूसरी पंक्ति वह है जहां हम SPOOL . का उपयोग करते हैं यह निर्दिष्ट करने के लिए आदेश दें कि आउटपुट फ़ाइल कहाँ लिखी जाएगी। /Users/barney/data/countries.csv . को बदलना सुनिश्चित करें आपके सिस्टम पर किसी स्थान का हिस्सा।
  3. तीसरी पंक्ति में, मैंने SQL क्वेरी चलाई - जिसके परिणाम मैं निर्यात कर रहा हूं। इस मामले में, मैंने पूरे countries . का निर्यात किया टेबल.
  4. अगला मैं SPOOL बदल गया बंद।
  5. आखिरकार, मैंने SQLFORMAT . सेट करके समाप्त किया ansiconsole पर वापस जाएं (जो कि मैं इसे csv . पर सेट करने से पहले उपयोग कर रहा था )।

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

"COUNTRY_ID","COUNTRY_NAME","REGION_ID"
"AR","Argentina",2
"AU","Australia",3
"BE","Belgium",1
"BR","Brazil",2
"CA","Canada",2
"CH","Switzerland",1
"CN","China",3
"DE","Germany",1
"DK","Denmark",1
"EG","Egypt",4
"FR","France",1
"HK","HongKong",3
"IL","Israel",4
"IN","India",3
"IT","Italy",1
"JP","Japan",3
"KW","Kuwait",4
"MX","Mexico",2
"NG","Nigeria",4
"NL","Netherlands",1
"SG","Singapore",3
"UK","United Kingdom",1
"US","United States of America",2
"ZM","Zambia",4
"ZW","Zimbabwe",4

25 rows selected. 

कॉलम हेडर हटाएं

आप SET HEADING off . के साथ कॉलम हेडर्स को हटा सकते हैं :

SET SQLFORMAT csv
SET HEADING off
SPOOL '/Users/barney/data/countries.csv';
SELECT * FROM countries;
SPOOL off;
SET SQLFORMAT ansiconsole
SET HEADING on

परिणाम:

"AR","Argentina",2
"AU","Australia",3
"BE","Belgium",1
"BR","Brazil",2
"CA","Canada",2
"CH","Switzerland",1
"CN","China",3
"DE","Germany",1
"DK","Denmark",1
"EG","Egypt",4
"FR","France",1
"HK","HongKong",3
"IL","Israel",4
"IN","India",3
"IT","Italy",1
"JP","Japan",3
"KW","Kuwait",4
"MX","Mexico",2
"NG","Nigeria",4
"NL","Netherlands",1
"SG","Singapore",3
"UK","United Kingdom",1
"US","United States of America",2
"ZM","Zambia",4
"ZW","Zimbabwe",4

25 rows selected. 

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

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

आप X rows selected SET FEEDBACK off :

SET SQLFORMAT csv
SET HEADING off
SET FEEDBACK off
SPOOL '/Users/barney/data/countries.csv';
SELECT * FROM countries;
SPOOL off;
SET SQLFORMAT ansiconsole
SET HEADING on 
SET FEEDBACK on

परिणाम:

"AR","Argentina",2
"AU","Australia",3
"BE","Belgium",1
"BR","Brazil",2
"CA","Canada",2
"CH","Switzerland",1
"CN","China",3
"DE","Germany",1
"DK","Denmark",1
"EG","Egypt",4
"FR","France",1
"HK","HongKong",3
"IL","Israel",4
"IN","India",3
"IT","Italy",1
"JP","Japan",3
"KW","Kuwait",4
"MX","Mexico",2
"NG","Nigeria",4
"NL","Netherlands",1
"SG","Singapore",3
"UK","United Kingdom",1
"US","United States of America",2
"ZM","Zambia",4
"ZW","Zimbabwe",4

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

एकाधिक टेबल

इस उदाहरण में, मैं दो तालिकाओं में शामिल होने वाली थोड़ी अधिक जटिल क्वेरी के परिणाम निर्यात करता हूं:

SET SQLFORMAT csv 
SET HEADING off 
SET FEEDBACK off
SPOOL '/Users/barney/data/employees_jobs.csv';
SELECT 
    e.employee_id,
    e.first_name,
    e.last_name,
    e.salary,
    j.job_title
FROM employees e
INNER JOIN jobs j
ON e.job_id = j.job_id
WHERE e.salary BETWEEN 12000 AND 15000
ORDER BY SALARY DESC;
SPOOL off;
SET SQLFORMAT ansiconsole
SET HEADING on 
SET FEEDBACK on

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

145,"John","Russell",14000,"Sales Manager"
146,"Karen","Partners",13500,"Sales Manager"
201,"Michael","Hartstein",13000,"Marketing Manager"
147,"Alberto","Errazuriz",12000,"Sales Manager"
205,"Shelley","Higgins",12000,"Accounting Manager"
108,"Nancy","Greenberg",12000,"Finance Manager"

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

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

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

SET SQLFORMAT csv 
SET HEADING off 
SET FEEDBACK off
SPOOL '/Users/barney/data/employees_jobs.csv' APPEND;
SELECT 
    e.employee_id,
    e.first_name,
    e.last_name,
    e.salary,
    j.job_title
FROM employees e
INNER JOIN jobs j
ON e.job_id = j.job_id
WHERE e.salary BETWEEN 11000 AND 11999
ORDER BY SALARY DESC;
SPOOL off;
SET SQLFORMAT ansiconsole
SET HEADING on 
SET FEEDBACK on

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

145,"John","Russell",14000,"Sales Manager"
146,"Karen","Partners",13500,"Sales Manager"
201,"Michael","Hartstein",13000,"Marketing Manager"
147,"Alberto","Errazuriz",12000,"Sales Manager"
205,"Shelley","Higgins",12000,"Accounting Manager"
108,"Nancy","Greenberg",12000,"Finance Manager"
168,"Lisa","Ozer",11500,"Sales Representative"
174,"Ellen","Abel",11000,"Sales Representative"
114,"Den","Raphaely",11000,"Purchasing Manager"
148,"Gerald","Cambrault",11000,"Sales Manager"

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


  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. R12.2 अपग्रेड पार्ट -2 (R12.2.0 के लिए मुख्य अपग्रेड ड्राइवर) में चरण दर चरण अपग्रेड प्रक्रिया

  3. SQL डेवलपर 4.0 का विमोचन

  4. मैं ऑरैकल टेबल की सामग्री को फ़ाइल में कैसे निर्यात कर सकता हूं?

  5. रीयल टाइम में PL/SQL आउटपुट प्राप्त करें