Trước hết, hãy kiểm tra xem cơ sở dữ liệu của bạn có khả năng lưu trữ các ký tự tiếng Ả Rập bằng cách
SELECT *
from NLS_DATABASE_PARAMETERS
WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
Nếu bạn nhận được các giá trị như AL32UTF8
, AL16UTF16
hoặc WE8ISO8859P6
bạn ổn và DB có thể lưu trữ các ký tự như vậy.
Trong SQL Developer, đi tới Công cụ / Tùy chọn / Môi trường / Mã hóa và chọn UTF-8
.
Đặt Biến môi trường thành NLS_LANG=ARABIC_AMERICA.AL32UTF8
hoặc tương tự, bạn cũng có thể thực hiện NLS_LANG=.AL32UTF8
để giữ ngôn ngữ và lãnh thổ mặc định / hiện có. Ngoài ra, bạn cũng có thể đặt trong Sổ đăng ký của mình tại HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(cho 32 bit), tương ứng. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(cho 64 bit).
Sau đó, nó sẽ hoạt động.
Việc thay đổi bộ ký tự cục bộ của bạn (tức là NLS_LANG) không bao giờ ảnh hưởng đến bất kỳ dữ liệu hiện có nào trong cơ sở dữ liệu.