प्रस्तावित समाधानों में से कोई भी मूल स्तंभ नाम दिखाने के लिए काम नहीं करता है, इसलिए मुझे यकीन नहीं है कि लोग उन्हें क्यों वोट दे रहे हैं ... मेरे पास "हैक" है जो मूल अनुरोध के लिए काम करता है, लेकिन मैं वास्तव में नहीं करता यह पसंद नहीं है ... यह वास्तव में आप प्रत्येक कॉलम के लिए क्वेरी पर एक स्ट्रिंग को जोड़ या उपसर्ग करते हैं ताकि वे कॉलम शीर्षक के लिए हमेशा लंबे समय तक पर्याप्त हों। यदि आप एचटीएमएल मोड में हैं, तो पोस्टर के रूप में, थोड़ा अतिरिक्त स्पेस स्पेसिंग द्वारा थोड़ा नुकसान होता है ... यह निश्चित रूप से आपकी क्वेरी को धीमा कर देगा ...
उदा।
SET ECHO OFF
SET PAGESIZE 32766
SET LINESIZE 32766
SET NUMW 20
SET VERIFY OFF
SET TERM OFF
SET UNDERLINE OFF
SET MARKUP HTML ON
SET PREFORMAT ON
SET WORD_WRAP ON
SET WRAP ON
SET ENTMAP ON
spool '/tmp/Example.html'
select
(s.ID||' ') AS ID,
(s.ORDER_ID||' ') AS ORDER_ID,
(s.ORDER_NUMBER||' ') AS ORDER_NUMBER,
(s.CONTRACT_ID||' ') AS CONTRACT_ID,
(s.CONTRACT_NUMBER||' ') AS CONTRACT_NUMBER,
(s.CONTRACT_START_DATE||' ') AS CONTRACT_START_DATE,
(s.CONTRACT_END_DATE||' ') AS CONTRACT_END_DATE,
(s.CURRENCY_ISO_CODE||' ') AS CURRENCY_ISO_CODE,
from Example s
order by s.order_number, s.contract_number;
spool off;
बेशक आप कुछ बेहतर करने के लिए एक संग्रहीत प्रक्रिया लिख सकता है, लेकिन वास्तव में यह इस सरल परिदृश्य के लिए overkill की तरह लगता है।
यह अभी भी मूल पोस्टर अनुरोध को पूरा नहीं करता है। इसमें इसे कॉलम पर मैन्युअल रूप से सूचीबद्ध करने की आवश्यकता है और चयन * का उपयोग नहीं करना चाहिए। लेकिन कम से कम यह समाधान है जो काम करता है जब आप खेतों को विस्तार से तैयार करना चाहते हैं।
हालांकि, चूंकि एचटीएमएल में बहुत लंबे समय तक खेतों में कोई समस्या नहीं है, इसलिए इस उदाहरण को काम करने के लिए क्रिस के समाधान को ठीक करने का एक आसान तरीका है। यह केवल एक उपयोग का चयन करें अधिकतम मूल्य ऑरैकल अनुमति देगा। अफसोस की बात यह है कि यह वास्तव में प्रत्येक तालिका के हर क्षेत्र के लिए वास्तव में काम नहीं करेगा, जब तक आप स्पष्ट रूप से प्रत्येक डेटा प्रकार के लिए स्वरूपण जोड़ नहीं देते। यह समाधान भी शामिल होने के लिए काम नहीं करेगा, क्योंकि विभिन्न तालिकाएं समान कॉलम नाम का उपयोग कर सकती हैं लेकिन एक अलग डेटाटाइप।
SET ECHO OFF
SET TERMOUT OFF
SET FEEDBACK OFF
SET PAGESIZE 32766
SET LINESIZE 32766
SET MARKUP HTML OFF
SET HEADING OFF
spool /tmp/columns_EXAMPLE.sql
select 'column ' || column_name || ' format A32766'
from all_tab_cols
where data_type = 'VARCHAR2' and table_name = 'EXAMPLE'
/
spool off
SET HEADING ON
SET NUMW 40
SET VERIFY OFF
SET TERM OFF
SET UNDERLINE OFF
SET MARKUP HTML ON
SET PREFORMAT ON
SET WORD_WRAP ON
SET WRAP ON
SET ENTMAP ON
@/tmp/columns_EXAMPLE.sql
spool '/tmp/Example.html'
select *
from Example s
order by s.order_number, s.contract_number;
spool off;
पायथन कोड के लिए धन्यवाद, दुर्भाग्यवश हमारे ग्राहक सख्ती से अपने उत्पादन वातावरण में किसी भी अन्य सॉफ्टवेयर की स्थापना को प्रतिबंधित करते हैं। यहां तक कि grep या पूंछ भी नहीं। ओह। तो यह sqlplus या बस्ट है। –
यह पूरी तरह से असंबंधित कारणों के लिए सहायक होने के लिए मिला। खुशी है कि आप इसे पोस्ट किया! :- डी –