Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Ngăn chặn sqlplus cắt ngắn tên cột, không có định dạng cột riêng lẻ

Một điều bạn có thể thử là tạo động các lệnh "cột x định dạng a20". Một cái gì đó như sau:

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

Lưu ý rằng mẫu này sẽ chỉ hoạt động với VARCHAR2. Ví dụ, bạn sẽ cần thêm giải mã để thay đổi lệnh "cột" đã tạo cho DATE hoặc NUMBERs.

CẬP NHẬT:Hóa ra SQL gốc không thực sự thay đổi hành vi của SQL * Plus. Điều duy nhất tôi có thể nghĩ đến là đổi tên các tên trường thành một giá trị ký tự A, B, C, v.v. theo cách sau:

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

Nó sẽ tạo ra kết quả tương tự như:

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. Số lượng bản ghi trong câu lệnh chèn (Oracle)

  2. Số Oracle thành số thập phân C #

  3. Làm cách nào để viết một thủ tục được lưu trữ để thêm một cột vào con trỏ tham chiếu từ một thủ tục được lưu trữ khác?

  4. Cách thay đổi định dạng ngày trong cơ sở dữ liệu oracle

  5. Đối sánh Oracle SQL Regexp_replace