Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mencegah pemotongan sqlplus nama kolom, tanpa pemformatan kolom individual

Satu hal yang dapat Anda coba adalah membuat perintah "column x format a20" secara dinamis. Sesuatu seperti berikut:

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

Perhatikan bahwa sampel ini hanya akan berfungsi dengan VARCHAR2. Anda perlu menambahkan dekode misalnya untuk mengubah perintah "kolom" yang dihasilkan untuk DATE atau NUMBER.

PEMBARUAN:Ternyata SQL asli tidak benar-benar mengubah perilaku SQL*Plus. Satu-satunya hal yang dapat saya pikirkan adalah mengganti nama bidang menjadi satu nilai karakter A, B, C, dll. dengan cara berikut:

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

Ini akan menghasilkan output yang mirip dengan:

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. cetak tanggal mulai dan akhir dalam satu baris untuk rentang tanggal yang berkelanjutan atau tumpang tindih di Oracle SQL

  2. Bagaimana cara mendapatkan nilai centang kotak dari Treeview di c #?

  3. Cara Memformat Angka dengan Koma di Oracle

  4. Adaptor Jaringan tidak dapat membuat koneksi saat terhubung dengan Oracle DB

  5. Mengkonversi dari tanggal ke zaman-Oracle