Problema do conjunto de caracteres do Oracle Database com as tabelas de auditoria no Debian

1

Eu tenho o Oracle XE instalado no Debian Linux e o conjunto de caracteres está configurado para o AL32UTF8. Existem vários aplicativos clientes que se conectam a um banco de dados do Windows com as 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 "??????" se contiver algum caractere não inglês. Suponho que isso ocorra porque os registros de auditoria vão para o banco de dados no código do idioma diferente e não dependem das configurações de globalização / localidade do cliente.

Como esse problema de globalização pode ser corrigido? obrigado!

    
por Leonid Shirmanov 04.06.2009 / 10:01

1 resposta

1

A opção provável é que os dados da auditoria sejam salvos corretamente em francês, mas o seu cliente não oferece suporte, portanto, o seu cliente Oracle traduz letras em francês para ???? para você.

  1. Qual é o NLS_LANG do seu cliente / ambiente? (por exemplo, do seu ambiente)
  2. 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 limitar a algumas linhas suspeitas

Se todos os ??? caracteres têm o mesmo código ascii, o Oracle armazena ???. Se todo ??? tem um código ascii diferente, a Oracle armazena letras em francês e a configuração do cliente NLS_LANG não suporta letras em francês.

Espero que ajude a solucionar o problema ...

    
por 05.06.2009 / 23:16