Muito provavelmente é devido à incompatibilidade entre o conjunto de caracteres NLS específico da localidade e o conjunto de caracteres do banco de dados . Ou então, o NLS_LANG o valor não está definido corretamente na variável de ambiente do SO .
Dê uma olhada em Por que os valores indesejados/caracteres especiais/pontos de interrogação são exibidos no meu cliente?
- O conjunto de caracteres do seu cliente não corresponde ao conjunto de caracteres do banco de dados.
Você pode comparar entre:
-- locale-specific characterset
select value
from v$nls_parameters
where parameter = 'NLS_CHARACTERSET';
-- database characterset
select value
from nls_database_parameters
where parameter = 'NLS_CHARACTERSET';
Se você vir uma incompatibilidade entre os dois, defina o conjunto de caracteres NLS específico da localidade para o conjunto de caracteres do banco de dados.
- Se os conjuntos de caracteres acima corresponderem, você precisará definir o valor NLS_LANG na variável de ambiente do SO.
Para o sistema operacional Windows, o formato é:
[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
Siga as instruções na documentação sobre como configurar o NLS_LANG :Configurando a variável de ambiente NLS_LANG para bancos de dados Oracle