मुझे लगता है कि समस्या यह है कि आपकी "जटिल संरचना" कितनी जटिल है?
Oracle SQL डेवलपर या क्वेस्ट TOAD जैसे प्रोग्रामिंग IDE में डेटा तालिका को CSV फ़ाइलों में निर्यात करने के लिए विज़ार्ड होते हैं।
यदि आप एकाधिक तालिकाओं से डेटा में शामिल होना चाहते हैं तो आप एक दृश्य का उपयोग कर सकते हैं, या एक SQL कथन भी लिख सकते हैं
select e.ename||','||d.dname
from emp e
join dept d on ( e.deptno = d.deptno )
/
(याद रखें कि कॉलम में अक्सर डेटा हो सकता है जिसमें अल्पविराम शामिल होता है, इसलिए आप अपने विभाजक के रूप में अधिक असामान्य वर्ण - या वर्णों के सेट - का उपयोग करना चाह सकते हैं।)
कुछ करने का एक और त्वरित तरीका एसक्यूएल * प्लस के एचटीएमएल रिपोर्टिंग फ़ंक्शन का उपयोग करना है। कई स्प्रैडशीट टूल बिना स्नैच के अच्छी तरह से संरचित HTML और XML आयात कर सकते हैं। और जानें।
यदि आप एक पदानुक्रमित संरचना को समतल करना चाहते हैं या कुछ और अधिक जटिल है तो आपको शायद पीएल/एसक्यूएल में जाने की आवश्यकता होगी। UTL_FILE का उपयोग करने के लिए फिट किए गए उपरोक्त कथन के एक प्रकार का उपयोग करने के लिए एक हैंड-रोल्ड दृष्टिकोण का उपयोग किया जाएगा:
declare
csv_fh utl_file.filetype;
begin
csv_fh := utl_file.fopen('C:\temp', 'data_export.csv', 'W');
for r in ( select e.ename, d.dname
from emp e
join dept d on ( e.deptno = d.deptno )
) loop
utl_file.put_line(csv_fh, r.ename||'|'||r.dname;
end loop;
utl_file.fclose(csv_fh);
end;
यदि आप विशेष रूप से एक्सेल (यानी एक .XLS फ़ाइल) को निर्यात करना चाहते हैं तो आपको Oracle बिल्ट-इन से आगे जाना होगा। पीएल/एसक्यूएल से एक्सेल में सीधे निर्यात करने का सामान्य समाधान SYLK एपीआई के लिए टॉम काइट का ओडब्ल्यूए_एसवाईएलके रैपर है। और जानें।
यह सिंगल वर्कशीट के साथ काम करता है। यदि आप एकाधिक कार्यपत्रकों में निर्यात करना चाहते हैं तो कुछ वैकल्पिक समाधान हैं।
संजीव सप्रे के पास उसका get_xl_xml पैकेज है। जैसा कि नाम से पता चलता है कि यह परिवर्तन करने के लिए एक्सएमएल का उपयोग करता है। और अधिक जानकारी प्राप्त करें।
जेसन बेनेट ने एक पीएल/एसक्यूएल ऑब्जेक्ट लिखा है जो एक्सेल एक्सएमएल दस्तावेज़ उत्पन्न करता है। और जानें।