Re: [oracle_br] Re: Erros Oracle (Ora....)
EnNtão : como eu disse, praticamente ** TODA e Qualquer ** tool de programação/ferramente cliente tem como configurar os valores de NLS que deseja que o database considere para a sessão, E se a mensagem de erro está sendo enviada pelo database, é esse setting que ele utilizará... No caso do Oracle Forms, embora não tenha um ambiente aqui de testes se me lembro ele Não manipula por default as mensagens que vêm do database, E ele é configurado alterando-se variáveis NLS nos arquivos de configuração do webserver dele : dá uma olhadinha nos manuais do Oracle Forms e em http://www.oracle-base.com/articles/11g/oracle-forms-and-reports-11gr2-configuration-notes.php e http://www.oracle.com/technetwork/products/globalization/globalization-best-practices.pdf que vc acha algumas refs Porém, ** evidentemente ** : 1. uma mensagem "ORA-1: unique constraint violated (NOMEDOCARA.SYS000XYZNNN)" pro usuário é TÃO MISTERIOSA e Inapropriada quanto "ORA-1: restrição exclusiva(NOMEDOCARA.SYS000XYZNNN) violada" : então, MAIS do que só Traduzir, a sua Aplicação ** DEVERIA ** ao invés de dar a exata mensagem que veio do database, dar uma mensagem Customizada mais apropriada 2. certifique-se que Não Apenas a mensagem é Exibida , *** MAS *** que também ela é GRAVADA num arquivo/tabela/whatever, permanentemente, JUNTO com informações tais como usuário logado, data/hora/nome do programa que estava sendo executado, etc Essas duas coisas acima normalmente se fazem con triggers ON-ERROR no Oracle Forms : cheque a documentação do Forms para refs /exemplos []s Chiappa
RE: [oracle_br] Re: Erros Oracle (Ora....)
Alessandro Tu deve configurar o NLS_LANG no registro do windows dos clients. Étore From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Sent: terça-feira, 22 de julho de 2014 08:22 To: Forum(Oracle) Subject: Re: [oracle_br] Re: Erros Oracle (Ora) Bom dia Eu utilizo o Forms 9i que está instalado em Inglês. Então quando dá erro de PK ou FK , campo obrigatório (Não pode ser null), sai tudo em inglês. Precisava traduzir estes erros p/ facilitar p/ o cliente final. Em 21 de julho de 2014 22:16, jlchia...@yahoo.com.br [oracle_br] escreveu: Explica melhor : vc está falando das mensagens de erro do database, enviadas PELO DATABASE para o cliente ?? Se sim, basicamente o que vc tem que fazer é setar a tool cliente/linguagem/ambiente de programação para informar ao database a lingguagem que vc quer usar, que aí as mensagens de erro, dias da semana, etc, etc , serão traduzidas Já se a mensagem de erro vinda do database tá sendo Processada pela tool/ferramenta de programação (como sei por exemplo que o JDBC pode fazer) , aí outras técnicas vão ser necessárias, talvez ... ==> Exemplo com SQLPLUS como tool-cliente, que se configura com variáveis de ambiente (OBVIAMENTE, outras tools/linguagens se configuram de outras maneiras) : ==> database está configurado para usar Inglês : SYS:AS SYSDBA@orcl:SQL>select * from nls_database_parameters; PARAMETER -- VALUE - NLS_LANGUAGE AMERICAN NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET AL32UTF8 NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN ==> acesso o database SEM especificar NLS settings para o cliente, ele usa o default do database : [oracle@localhost ~]$ echo $NLS_LANG [oracle@localhost ~]$ [oracle@localhost ~]$ sqlplus / as sysdba SYS:AS SYSDBA@orcl:SQL>select 1/0 from dual; select 1/0 from dual * ERROR at line 1: ORA-01476: divisor is equal to zero SYS:AS SYSDBA@orcl:SQL>exit ==> agora seto o NLS environment do cliente, NO MEU CASO de sqlplus via variável NLS : [oracle@localhost ~]$ export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8" [oracle@localhost ~]$ echo $NLS_LANG BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8 ==> óia aí as msg de erro em pt-br : [oracle@localhost ~]$ sqlplus / as sysdba SYS:AS SYSDBA@orcl:SQL>select 1/0 from dual; select 1/0 from dual * ERROR at line 1: ORA-01476: o divisor é igual a zero SYS:AS SYSDBA@orcl:SQL>SELECT * FROM NLS_SESSION_PARAMETERS; PARAMETER VALUE - NLS_LANGUAGE BRAZILIAN PORTUGUESE NLS_TERRITORY BRAZIL NLS_CURRENCY R$ NLS_ISO_CURRENCY BRAZIL NLS_NUMERIC_CHARACTERS ,. NLS_CALENDAR GREGORIAN NLS_DATE_LANGUAGE BRAZILIAN PORTUGUESE NLS_SORT WEST_EUROPEAN []s Chiappa ==> REPITO : no Meu caso o setting é feito via variável, Outras tools demandam Outros ajustes Diga EXATAMENTE em que vc desenvolveu e onde/como vc roda o Aplicativo, que eventualmente quem usa a mesma coisa pode te dar umas dicas... [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Erros Oracle (Ora....)
Bom dia Eu utilizo o Forms 9i que está instalado em Inglês. Então quando dá erro de PK ou FK , campo obrigatório (Não pode ser null), sai tudo em inglês. Precisava traduzir estes erros p/ facilitar p/ o cliente final. Em 21 de julho de 2014 22:16, jlchia...@yahoo.com.br [oracle_br] < oracle_br@yahoogrupos.com.br> escreveu: > > > Explica melhor : vc está falando das mensagens de erro do database, > enviadas PELO DATABASE para o cliente ?? Se sim, basicamente o que vc tem > que fazer é setar a tool cliente/linguagem/ambiente de programação para > informar ao database a lingguagem que vc quer usar, que aí as mensagens de > erro, dias da semana, etc, etc , serão traduzidas Já se a mensagem de > erro vinda do database tá sendo Processada pela tool/ferramenta de > programação (como sei por exemplo que o JDBC pode fazer) , aí outras > técnicas vão ser necessárias, talvez ... > > ==> Exemplo com SQLPLUS como tool-cliente, que se configura com variáveis > de ambiente (OBVIAMENTE, outras tools/linguagens se configuram de outras > maneiras) : > > ==> database está configurado para usar Inglês : > > > SYS:AS SYSDBA@orcl:SQL>select * from nls_database_parameters; > > PARAMETER > -- > VALUE > > - > NLS_LANGUAGE > AMERICAN > > NLS_NCHAR_CHARACTERSET > AL16UTF16 > > NLS_TERRITORY > AMERICA > > NLS_CURRENCY > $ > > NLS_ISO_CURRENCY > AMERICA > > NLS_NUMERIC_CHARACTERS > ., > > NLS_CHARACTERSET > AL32UTF8 > > NLS_CALENDAR > GREGORIAN > > NLS_DATE_FORMAT > DD-MON-RR > > NLS_DATE_LANGUAGE > AMERICAN > > ==> acesso o database SEM especificar NLS settings para o cliente, ele usa > o default do database : > > [oracle@localhost ~]$ echo $NLS_LANG > > [oracle@localhost ~]$ > > [oracle@localhost ~]$ sqlplus / as sysdba > > SYS:AS SYSDBA@orcl:SQL>select 1/0 from dual; > select 1/0 from dual > * > ERROR at line 1: > ORA-01476: divisor is equal to zero > > > SYS:AS SYSDBA@orcl:SQL>exit > > ==> agora seto o NLS environment do cliente, NO MEU CASO de sqlplus via > variável NLS : > > [oracle@localhost ~]$ export NLS_LANG="BRAZILIAN > PORTUGUESE_BRAZIL.AL32UTF8" > [oracle@localhost ~]$ echo $NLS_LANG > BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8 > > ==> óia aí as msg de erro em pt-br : > > [oracle@localhost ~]$ sqlplus / as sysdba > > > SYS:AS SYSDBA@orcl:SQL>select 1/0 from dual; > select 1/0 from dual > * > ERROR at line 1: > ORA-01476: o divisor é igual a zero > > > SYS:AS SYSDBA@orcl:SQL>SELECT * FROM NLS_SESSION_PARAMETERS; > > PARAMETER > > > VALUE > > - > NLS_LANGUAGE > BRAZILIAN PORTUGUESE > > NLS_TERRITORY > BRAZIL > > NLS_CURRENCY > R$ > > NLS_ISO_CURRENCY > BRAZIL > > NLS_NUMERIC_CHARACTERS > ,. > > NLS_CALENDAR > GREGORIAN > > NLS_DATE_LANGUAGE > BRAZILIAN PORTUGUESE > > NLS_SORT > WEST_EUROPEAN > > > []s > >Chiappa > > ==> REPITO : no Meu caso o setting é feito via variável, Outras tools > demandam Outros ajustes Diga EXATAMENTE em que vc desenvolveu e > onde/como vc roda o Aplicativo, que eventualmente quem usa a mesma coisa > pode te dar umas dicas... > >
[oracle_br] Re: Erros Oracle (Ora....)
Explica melhor : vc está falando das mensagens de erro do database, enviadas PELO DATABASE para o cliente ?? Se sim, basicamente o que vc tem que fazer é setar a tool cliente/linguagem/ambiente de programação para informar ao database a lingguagem que vc quer usar, que aí as mensagens de erro, dias da semana, etc, etc , serão traduzidas Já se a mensagem de erro vinda do database tá sendo Processada pela tool/ferramenta de programação (como sei por exemplo que o JDBC pode fazer) , aí outras técnicas vão ser necessárias, talvez ... ==> Exemplo com SQLPLUS como tool-cliente, que se configura com variáveis de ambiente (OBVIAMENTE, outras tools/linguagens se configuram de outras maneiras) : ==> database está configurado para usar Inglês : SYS:AS SYSDBA@orcl:SQL>select * from nls_database_parameters; PARAMETER -- VALUE - NLS_LANGUAGE AMERICAN NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET AL32UTF8 NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN ==> acesso o database SEM especificar NLS settings para o cliente, ele usa o default do database : [oracle@localhost ~]$ echo $NLS_LANG [oracle@localhost ~]$ [oracle@localhost ~]$ sqlplus / as sysdba SYS:AS SYSDBA@orcl:SQL>select 1/0 from dual; select 1/0 from dual * ERROR at line 1: ORA-01476: divisor is equal to zero SYS:AS SYSDBA@orcl:SQL>exit ==> agora seto o NLS environment do cliente, NO MEU CASO de sqlplus via variável NLS : [oracle@localhost ~]$ export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8" [oracle@localhost ~]$ echo $NLS_LANG BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8 ==> óia aí as msg de erro em pt-br : [oracle@localhost ~]$ sqlplus / as sysdba SYS:AS SYSDBA@orcl:SQL>select 1/0 from dual; select 1/0 from dual * ERROR at line 1: ORA-01476: o divisor é igual a zero SYS:AS SYSDBA@orcl:SQL>SELECT * FROM NLS_SESSION_PARAMETERS; PARAMETER VALUE - NLS_LANGUAGE BRAZILIAN PORTUGUESE NLS_TERRITORY BRAZIL NLS_CURRENCY R$ NLS_ISO_CURRENCY BRAZIL NLS_NUMERIC_CHARACTERS ,. NLS_CALENDAR GREGORIAN NLS_DATE_LANGUAGE BRAZILIAN PORTUGUESE NLS_SORT WEST_EUROPEAN []s Chiappa ==> REPITO : no Meu caso o setting é feito via variável, Outras tools demandam Outros ajustes Diga EXATAMENTE em que vc desenvolveu e onde/como vc roda o Aplicativo, que eventualmente quem usa a mesma coisa pode te dar umas dicas...