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

Oracle thiết lập NLS_LANG mặc định

Đây là những gì có thể xảy ra:

  • Bộ ký tự khách hàng của bạn phải giống như CP1252 hoặc ISO-8859-15 trong khi trên thực tế, khách hàng của bạn thực sự sử dụng UTF8.
  • Trong bộ ký tự này (UTF8), ký hiệu á chiếm hai byte, vì vậy khách hàng của bạn gửi hai byte này, đồng thời yêu cầu Oracle coi chúng là CP1252. Trong CP1252, mã hai byte cho hai ký tự dẫn đến việc DB diễn giải đầu vào là hai ký tự, do đó length('à') bằng 2 (và nếu bạn chèn chuỗi này, kết quả của lần chèn không bằng à )
  • Khi bạn đặt đúng bộ ký tự, đầu vào sẽ được oracle xử lý chính xác như một ký tự đơn và độ dài của nó là 1 (vẫn là hai byte).

Kết luận:đặt bộ ký tự ứng dụng khách của bạn đúng cách nếu không bạn sẽ gặp lỗi dịch (theo cách này, bạn sẽ không nhận được các ký tự bất hợp pháp nhưng bạn có thể nhận được các ký hiệu lạ (¿ ).

Bộ ký tự cơ sở dữ liệu được đặt tại thời điểm tạo và thường được thay đổi thông qua xuất / tạo / nhập cơ sở dữ liệu trố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. ORA 01400 và ORA 02296:Không thể chèn null hoặc sửa đổi các thuộc tính cột đã thêm thành NOT NULL

  2. Liferay:Không tìm thấy trình điều khiển phù hợp

  3. Chuyển đổi hàng cột trong Oracle Sql

  4. Chúng ta có cần chỉ định không null cho khóa chính không? Oracle / SQL

  5. Nhà tiên tri; giới hạn hàng cho mỗi giá trị cột