Dúvida
Como corrigir o erro "-6502-ORA-06502: PL/SQL: erro: erro de conversão de caractere em número numérico ou de valor" ou "ERRO: -6502 ORA-06502: PL/SQL: numeric or value error: character to number conversion error " apresentando em diversos processos da RMS?
Ambiente
Retail Manager System – Totvs Varejo Supermercados Linha RMS -Todos os módulos – Todas as versões
Solução
O Problema ocorre, pois a linguagem do banco de dados está incorreta:
NLS_DATABASE_PARAMETERS
No padrão Corpore a linguagem padrão para o SGBD Oracle é o NLS_LANG WE8ISO8859P1. Certifique que a linguagem do Oracle da estação esteja igual a do servidor.
Para isso, execute na estação a seguinte consulta:
SELECT * FROM NLS_DATABASE_PARAMETERS (irá listar a linguagem do servidor)
SELECT * FROM NLS_SESSION_PARAMETERS (irá listar a linguagem da estação)
No caso de estarem diferentes do padrão, siga os passos do exemplo abaixo:
Na instalação do Oracle o idioma escolhido foi Brazilian e deveria ser American na estação, conforme o servidor.
Recomendamos que os passos abaixo sejam aplicados pelo DBA ou responsável pelo Banco de Dados da empresa:
a) Acessar o regedit;
b) Localizar a home do Oracle:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb_home1
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Oracle\KEY_OraDb_home1
c) Incluir a chave NLS_DATE_FORMAT com o valor DD/MM/YYYY.
d) Acertar o parâmetro NLS_LANG para AMERICAN_AMERICA.WE8ISO8859P1;
Por que fazer isso:
A exceção do Oracle ORA-01843 normalmente é apresentada no CorporeRM, quando a parametrização de Formato de Data ou Linguagem está fora do padrão recomendado pela Totvs.
Caso utilize ambiente 3 camadas, a alteração deve ser realizada no Servidor de APP.
Caso a inconsistência persista, favor incluir a tag <add key="ORACLELANGUAGE" value="pt-BR" />. Configuração para alterar o idioma da sessão de conexão com o Oracle
O idioma da sessão de conexão do RM com uma base Oracle pode ser alterar através da tag de configuração chamara OracleLanguage no arquivo RM.exe.config:
<add key="OracleLanguage" value="en-US" />
O valor padrão desta chave é pt-BR. O sistema deve considerar a linguagem en-US do banco Oracle para na configuração do Server utilizando a tag ORACLELANGUAGE.
Após inserir a tag, reinicie o serviço de host, reabra a aplicação e execute o processo novamente.
Observações:
- Só devem ser alterados os parâmetros NLS_LANG listados que tiverem com o valor Brazilian, os registros que estiverem com N/A não devem ser alterados.
- Essa inconsistência pode ser apresentada por outros motivos, sendo assim, caso a inconsistência persista, recomendamos um contato com o suporte do módulo onde o erro foi apresentado
0 Comentários