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

व्यक्तिगत कॉलम स्वरूपण के बिना, कॉलम नामों के sqlplus छंटनी को रोकना

एक चीज जिसे आप आजमा सकते हैं वह है गतिशील रूप से "कॉलम x प्रारूप a20" कमांड उत्पन्न करना। कुछ इस तरह:

set termout off
set feedback off

spool t1.sql
select 'column ' || column_name || ' format a' || data_length
from all_tab_cols
where table_name='YOUR_TABLE'
/
spool off

@t1.sql
set pagesize 24
set heading on
spool result.txt
select * 
from  YOUR_TABLE;
and   rownum < 30;
spool off

ध्यान दें कि यह नमूना केवल VARCHAR2 के साथ काम करेगा। उदाहरण के लिए आपको DATEs या NUMBERs के लिए जेनरेट किए गए "कॉलम" कमांड को बदलने के लिए डीकोड जोड़ना होगा।

अद्यतन:यह पता चला है कि मूल एसक्यूएल वास्तव में एसक्यूएल * प्लस के व्यवहार को नहीं बदलता है। केवल एक चीज जिसके बारे में मैं सोच सकता था, वह यह है कि फ़ील्ड नामों का नाम बदलकर एक वर्ण मान A, B, C, आदि कर दिया जाए:

select 'column ' || column_name ||
       ' heading "' ||
       chr(ascii('A') - 1 + column_id) ||
       '"'
from all_tab_cols
where table_name='YOUR_TAB_NAME'

यह निम्न के समान आउटपुट उत्पन्न करेगा:

column DEPT_NO heading "A"
column NAME heading "B"
column SUPERVIS_ID heading "C"
column ADD_DATE heading "D"
column REPORT_TYPE heading "E"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL त्रुटि:ORA-02298:मान्य नहीं कर सकता (SYSTEM.AEROPUERTO_FK) - पैरेंट कुंजियाँ नहीं मिलीं

  2. ऑरैकल संग्रहीत कार्यविधि में निर्देशिका से फ़ाइलों को हटाना

  3. एकाधिक कॉलम वाले SQL सर्वर में 'इन' क्लॉज

  4. ड्रॉप टेबलस्पेस यदि मौजूद नहीं है

  5. अजगर> JDBC के साथ Oracle सेवा नाम (jaydebeapi) के साथ कनेक्शन