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

Bộ ký tự Oracle JDBC và giới hạn 4000 ký tự

Trước Oracle 12.1, VARCHAR2 cột được giới hạn để lưu trữ 4000 byte dữ liệu trong bộ ký tự cơ sở dữ liệu ngay cả khi nó được khai báo VARCHAR2(4000 CHAR) . Vì mỗi ký tự trong chuỗi của bạn yêu cầu 2 byte bộ nhớ trong bộ ký tự UTF-8, bạn sẽ không thể lưu trữ nhiều hơn 2000 ký tự trong cột. Tất nhiên, con số đó sẽ thay đổi nếu một số ký tự của bạn thực sự chỉ yêu cầu 1 byte bộ nhớ hoặc nếu một số ký tự yêu cầu nhiều hơn 2 byte bộ nhớ. Khi bộ ký tự cơ sở dữ liệu là Windows-1252, mọi ký tự trong chuỗi của bạn chỉ yêu cầu một byte dung lượng duy nhất để bạn có thể lưu trữ 4000 ký tự trong cột.

Vì bạn có các chuỗi dài hơn, có thể khai báo cột dưới dạng CLOB không chứ không phải là VARCHAR2 ? Điều đó sẽ (một cách hiệu quả) loại bỏ giới hạn độ dài (có giới hạn về kích thước của CLOB điều đó phụ thuộc vào phiên bản Oracle và kích thước khối nhưng ít nhất là trong phạm vi nhiều GB).

Nếu bạn đang sử dụng Oracle 12.1 trở lên, thì max_string_size tham số cho phép bạn tăng kích thước tối đa của VARCHAR2 cột từ 4000 byte đến 32767 byte .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để biến 2 truy vấn có cột chung (A, B) và (A, C) thành chỉ một (A, B, C)?

  2. Danh sách các phần tử định dạng số trong Oracle

  3. Tự động tra cứu tên cột cho một bảng trong khi truy vấn sql

  4. Sử dụng kết quả Thu thập hàng loạt trong một truy vấn chọn lọc mà không có con trỏ

  5. Oracle:sao chép hàng trong khi cập nhật một trường cho bảng có nhiều cột