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

Trường trong tệp dữ liệu vượt quá độ dài tối đa - lỗi

Thông báo lỗi là do dữ liệu đọc vào từ tệp dữ liệu lớn hơn nên bộ đệm ký tự mặc định của sqlldr là 255 được sử dụng nếu không có CHAR và kích thước được chỉ định. Lưu ý rằng điều này khác với kích thước của cột mà trường tương ứng với. Ví dụ:nếu tôi có cột bảng VARCHAR2 (4000), nhưng không cung cấp rõ ràng kích thước trong tệp điều khiển

cola  not null,

và dữ liệu trong tệp dữ liệu vượt quá 255 nhưng có độ dài nhỏ hơn 4000, bạn sẽ gặp lỗi.

Tuy nhiên, nếu tệp điều khiển cho biết kích thước bộ đệm như thế này:

cola char(4000) not null,

tất cả sẽ tốt như thể tạo ra một bộ đệm lớn hơn (ở đây nó phù hợp với kích thước cột). Vì vậy, hãy tập thói quen luôn bao gồm các kích thước cột. Hãy tiết kiệm cho mình một số rắc rối và tạo một hàm để tạo tệp điều khiển mặc định cho bạn ... đợi tôi đã đăng tệp của tôi cho bạn, hãy thử:https://stackoverflow.com/a/37947714/2543416



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết xuất (các) bảng Oracle vào câu lệnh INSERT

  2. Làm cách nào để thực thi một tập lệnh SQL gốc trong JPA / Hibernate?

  3. Oracle tạo các hàng lịch trình với một khoảng thời gian

  4. Chỉ mục B-tree trên nhiều hơn 1 cột trông như thế nào?

  5. Cách (đơn vị-) kiểm tra ứng dụng PL / SQL chuyên sâu về dữ liệu