Kiểu dữ liệu NVARCHAR2 được Oracle giới thiệu cho các cơ sở dữ liệu muốn sử dụng Unicode cho một số cột trong khi vẫn giữ một bộ ký tự khác cho phần còn lại của cơ sở dữ liệu (sử dụng VARCHAR2). NVARCHAR2 là kiểu dữ liệu chỉ có Unicode.
Một lý do bạn có thể muốn sử dụng NVARCHAR2 có thể là DB của bạn sử dụng bộ ký tự không phải Unicode và bạn vẫn muốn có thể lưu trữ dữ liệu Unicode cho một số cột mà không cần thay đổi bộ ký tự chính. Một lý do khác có thể là bạn muốn sử dụng hai bộ ký tự Unicode (AL32UTF8 cho dữ liệu chủ yếu đến từ Tây Âu, AL16UTF16 cho dữ liệu chủ yếu đến từ châu Á chẳng hạn) vì các bộ ký tự khác nhau sẽ không lưu trữ cùng một dữ liệu hiệu quả như nhau.
Cả hai cột trong ví dụ của bạn (Unicode VARCHAR2(10 CHAR)
và NVARCHAR2(10)
) sẽ có thể lưu trữ cùng một dữ liệu, tuy nhiên việc lưu trữ byte sẽ khác. Một số chuỗi có thể được lưu trữ hiệu quả hơn trong chuỗi này hoặc chuỗi khác.
Cũng lưu ý rằng một số tính năng sẽ không hoạt động với NVARCHAR2, hãy xem câu hỏi SO này:
- Văn bản Oracle sẽ không hoạt động với NVARCHAR2. Những gì khác có thể không có sẵn?