जवाबों:
अरुण,
अब यह sqlcl Oracle SQL Developer 4.1 EA2 (4.1.0.18.37) से उपलब्ध है, आप इसे पुराने और प्रसिद्ध sqlplus की तरह उपयोग कर सकते हैं। sqlcl में csv के लिए आउटपुट फॉर्मेट सेटिंग है
set sqlformat csv
spool x.csv
select * from yourtable[s];
spool off
sqlcl checkout Kris 'ब्लॉग के बारे में अधिक जानकारी के लिए
इससे पहले कि sqlcl लगभग सबसे आसान था, APEX का उपयोग करना और रिपोर्ट को CSv को निर्यात करना था। सादे पुराने sqlplus में आप इसका उपयोग करके कर सकते हैं
set lines 9999 -- the appropriate size
set head off -- no header lines
set colsep ';' --column separator to ;
set pages 0 -- no pages
set feed off
select your data;
spool to_tofile
/
spool off
यह सबसे अच्छा काम करता है यदि परिणाम किसी एप्लिकेशन सर्वर या क्लाइंट पर लिखे जाएं। यदि उन्हें डेटाबेस सर्वर पर लिखा जाना है, तो utl_file एक बेहतर विकल्प हो सकता है।
रोनाल्ड।
आपको बिल्ट इन UTL_FILE पैकेज को देखना चाहिए । कई तरीके हैं जिनसे आप इसका इस्तेमाल कर सकते हैं।
आप किसी भी संख्या में फ़ाइलों के लिए लिखने के लिए UTL_FILE पैकेज का उपयोग करने वाले पैकेज में किसी भी प्रक्रिया को लिख सकते हैं। इन प्रक्रियाओं को SQL * प्लस सहित लगभग किसी भी एप्लिकेशन से कॉल किया जा सकता है।
आप समान कार्य करने के लिए PL / SQL स्क्रिप्ट लिख सकते हैं और कमांड लाइन पर @scriptname निर्दिष्ट करके SQL * Plus कमांड लाइन से स्क्रिप्ट को कॉल कर सकते हैं।
आप UTL_FILE का उपयोग SQL * Plus में सीधे ब्लॉक कर सकते हैं, लेकिन इसका उपयोग केवल एक समय के निर्यात के लिए किया जाना चाहिए और फिर भी यह सबसे अच्छा मार्ग नहीं हो सकता है।
उनके सरलतम तरीके से UTL_FILE का उपयोग करके एक फ़ाइल निर्यात FOPEN , PUT_LINE को एक या अधिक कॉल और FCLOSE के लिए कॉल से बना होगा ।
यदि प्रदर्शन एक चिंता का विषय है, तो आप विक्रेताओं के टूल पर विचार कर सकते हैं।
मैंने BMC, Wisdomforce, CoSort, DBCrane के औजारों का मूल्यांकन किया है। वे स्पूल, utl_file या बाहरी तालिका की तुलना में काफी तेज हैं। हम DBCrane का उपयोग कर रहे हैं क्योंकि मेरे बॉस लाइसेंस पर बहुत अधिक खर्च नहीं करना चाहते थे।
CSV प्रारूप में डिस्क पर डेटा निकालने के लिए आप पायथन और cx_Oracle मॉड्यूल का उपयोग कर सकते हैं।
यहाँ बताया गया है कि आप Oracle से cx_Oracle का उपयोग कैसे करते हैं:
constr='scott/tiger@localhost:1521/ORCL12'
con = cx_Oracle.connect(constr)
cur = con.cursor()
डेटा लाने के बाद आप पायथन सूची के माध्यम से लूप कर सकते हैं और सीएसवी प्रारूप में डेटा बचा सकते हैं।
for i, chunk in enumerate(chunks(cur)):
f_out.write('\n'.join([column_delimiter.join(row[0]) for row in chunk]))
f_out.write('\n')
जब मैंने TableHunter-For-Oracle लिखा तो मैंने इस दृष्टिकोण का उपयोग किया