Przede wszystkim sprawdź, czy Twoja baza danych może przechowywać znaki arabskie za pomocą
SELECT *
from NLS_DATABASE_PARAMETERS
WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
Jeśli otrzymasz wartości takie jak AL32UTF8
, AL16UTF16
lub WE8ISO8859P6
wszystko w porządku, a DB jest w stanie przechowywać takie znaki.
W SQL Developer przejdź do Narzędzia / Preferencje / Środowisko / Kodowanie i wybierz UTF-8
.
Ustaw zmienną środowiskową na NLS_LANG=ARABIC_AMERICA.AL32UTF8
lub podobnie, możesz również zrobić NLS_LANG=.AL32UTF8
w celu zachowania domyślnego/istniejącego języka i terytorium. Alternatywnie możesz ustawić również w swoim Rejestrze pod adresem HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(dla wersji 32-bitowej), ewent. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(dla wersji 64-bitowej).
Wtedy powinno działać.
Zmiana lokalnego zestawu znaków (np. NLS_LANG) nigdy nie wpływa na żadne istniejące dane w bazie danych.