Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Por que o Oracle exibe ??? para caracteres especiais como åäö


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?
  1. 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.
  1. 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