
Eu tenho o Oracle XE instalado no Debian Linux e o conjunto de caracteres está configurado para AL32UTF8. Existem vários aplicativos clientes que se conectam a um banco de dados do Windows com diferentes localidades - francês, etc., não inglês. Tudo bem com todos os dados do cliente que esses aplicativos colocam no banco de dados, nada convertido e os dados de texto em francês representam corretamente.
Mas os textos nas tabelas de auditoria parecem '??????' if contém algum caractere que não seja do inglês. Suponho que isso ocorre porque os registros de auditoria vão para o banco de dados em localidades diferentes e não dependem das configurações de globalização/localidade do cliente.
Como esse problema da globalização pode ser resolvido? obrigado!
Responder1
A opção provável é que os dados de auditoria sejam salvos corretamente em francês, mas SEU cliente não oferece suporte, então seu cliente Oracle traduz letras francesas para ???? para você.
- Qual é o NLS_LANG do seu cliente/ambiente? (por exemplo, do seu ambiente)
- Para verificar se os dados estão armazenados corretamente na tabela sys.aud$, execute:
SELECT username, ascii(username) from DBA_AUDIT_TRAIL;
--opcionalmente com uma cláusula WHERE para limitá-la a algumas linhas suspeitas
Se todos os ??? caracteres têm o mesmo código ascii, a Oracle armazena ???. Se cada ??? tem um código ascii diferente, o Oracle armazena letras francesas e a configuração NLS_LANG do cliente não suporta letras francesas.
Espero que isso ajude você a solucionar o problema ...