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

Kiểu dữ liệu Oracle:Tôi nên sử dụng VARCHAR2 hay CHAR

Tôi lo lắng về các khoảng trống thừa được đặt trong các trường VARCHAR2 và các vấn đề so sánh. Tôi biết có nhiều cách để so sánh chúng bằng cách cắt hoặc chuyển đổi chúng nhưng tôi e rằng nó sẽ làm cho mã của tôi lộn xộn và có lỗi.

Nó thực sự hoàn toàn ngược lại. Sử dụng CHAR sẽ buộc các dây của bạn có độ dài cố định bằng cách đệm chúng bằng khoảng trắng nếu chúng quá ngắn. Vì vậy, khi so sánh CHAR với các chuỗi thông thường trong bất kỳ ứng dụng nào đang sử dụng dữ liệu, ứng dụng đó sẽ cần thêm phần cắt mỗi lần. Nói cách khác, VARCHAR2 là sự lựa chọn tự nhiên dẫn đến mã sạch hơn.

Nói chung, bạn nên luôn luôn sử dụng VARCHAR2, trừ khi bạn có lý do rất cụ thể khiến bạn muốn có cột CHAR.

Nếu bạn lo lắng về các chuỗi có thêm khoảng trắng ở đầu hoặc cuối, thì có một số tùy chọn mà bạn cần lưu ý:

  • Đảm bảo rằng bất kỳ quá trình nào đang thực hiện các phần chèn đều được cắt bớt trước khi chèn.
  • Thêm ràng buộc kiểm tra trên cột để đảm bảo rằng string =trim (chuỗi).
  • Thêm một trình kích hoạt cấp hàng trước khi chèn để cắt các chuỗi khi chúng được chèn vào.
  • Đảm bảo rằng bạn cắt các chuỗi bất cứ khi nào bạn truy vấn bảng


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chuyển đổi thập phân sang thập lục phân bằng TO_CHAR () trong Oracle

  2. Cách thay đổi bảng thêm oracle cột

  3. ORA-01036:tên / số biến không hợp lệ khi chạy truy vấn thông qua C #

  4. Xóa các hàng trùng lặp trong bảng

  5. Trong trình kích hoạt Oracle, tôi có thể gán mới và cũ cho một biến kiểu hàng không?