Antes de mais nada, verifique se seu banco de dados é capaz de armazenar caracteres arábicos
SELECT *
from NLS_DATABASE_PARAMETERS
WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
Se você obtiver valores como
AL32UTF8
, AL16UTF16
ou WE8ISO8859P6
você está bem e o DB é capaz de armazenar esses caracteres. No SQL Developer vá para Ferramentas / Preferências / Ambiente / Codificação e selecione
UTF-8
. Defina uma variável de ambiente para
NLS_LANG=ARABIC_AMERICA.AL32UTF8
ou similar, você também pode fazer NLS_LANG=.AL32UTF8
para manter o idioma e território padrão/existente. Alternativamente, você pode definir também no seu Registro em HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(para 32 bits), resp. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(para 64 bits). Então deve funcionar.
Alterar seu conjunto de caracteres local (ou seja, NLS_LANG) nunca afeta nenhum dado existente no banco de dados.