quinta-feira, 14 de agosto de 2014

NLS_SORT Oracle

Versão em Português

Today I had problems to order uppercase and lowercase letters in the Oracle database.

Running the following command solved the problem:
ALTER SESSION SET NLS_SORT = WEST_EUROPEAN;

This problem occurred in the client environment but not locally because the NLS_SORT parameter was setted to "BINARY" (responsible for sorting [AZ to az]), and what we needed it to be the "WEST_EUROPEAN" [Aa to Zz] standard.

The trigger below changes the value of the NLS_SORT parameter whenever a session starts in the schema. Do not forget to change the schema name.

create or replace trigger PARAM_SESSION_TRIG
after logon
on NomeDoSchema.schema
begin
execute immediate 'ALTER SESSION SET NLS_SORT=WEST_EUROPEAN';
end;

Kind regards!
Adrian Schmidt

NLS_SORT Oracle

English version

Hoje tive problemas com ordenação entre letras maiúsculas e minúsculas no banco de dados Oracle.

Executando o comando abaixo resolveu:
ALTER SESSION SET NLS_SORT=WEST_EUROPEAN;

Este problema aconteceu no ambiente do cliente mas não localmente, pois o parâmetro nls_sort estava setado como "BINARY" (responsável pela ordenação [AZ a az]), e precisávamos que fosse o padrão "WEST_EUROPEAN" [Aa a Zz] .

A trigger abaixo altera o valor do parâmetro nls_sort sempre que inicia-se uma sessão no schema. Não esqueça de alterar o nome do schema.

create or replace trigger PARAM_SESSION_TRIG
after logon
on NomeDoSchema.schema
begin
execute immediate 'ALTER SESSION SET NLS_SORT=WEST_EUROPEAN';
end;

Abraços!
Adriano Schmidt

quinta-feira, 7 de agosto de 2014

Change JBoss Locale

Versão em português

Hello,

Today I had problems with numeric fields and dates. I typed 20,00 and was displayed 2000. I also had problems with the display of dates.

The problem didn't happen in de development machines, just in homologation machines, because the default locale was different in this environments.

In your eclipse:
- Go to in "Server
- Double-click at JBoss
- Click in "Open Launch Configuration"
- Type at the end of "VM Arguments" field: -Duser.language=pt -Duser.country=BR

But to start JBoss with command line, it doesn't work:
standalone.bat -Duser.language=pt -Duser.country=BR

You need to change the configuration files.

In Windows environments, you must add the following line in the file standalone.conf.bat
set "JAVA_OPTS=%JAVA_OPTS% -Duser.language=pt -Duser.country=BR"

In Linux environments, you must add the following line in the file standalone.conf
JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"

Best Regards!
Adriano Schmidt

PS: My English isn't very good, if you see something wrong please let me know.

Mudar Locale do JBoss

English version

Olá,

Hoje tive problemas com campos numéricos e com datas. Eu digitava 20,00 e ele virava 2000 e outras loucuras assim pois trocava vírgula com ponto e vice-versa, também alguns campos de data estavam aparecendo Feb, 08, 2014 e não 08/02/2014.

Nas máquinas dos desenvolvedores não acontecia isto, porém, no ambiente de homologação acontecia. Os desenvolvedores tinham máquina cujo Locale default era pt_BR (português do Brasil) já no servidor era en_US (inglês dos Estados Unidos).

O ideal é você tratar isso na sua aplicação, porém, pode ser resolvido mudando o locale do JBoss.

No eclipse é só você ir na aba servers, dar dois cliques no seu JBoss, clicar em "Open Launch Configuration" e adicionar os seguintes parâmetros em VM Arguments:
-Duser.language=pt -Duser.country=BR

Já quando você for iniciar via linha de comando NÃO pode simplesmente adicionar dessa forma:
standalone.bat -Duser.language=pt -Duser.country=BR

Dessa forma não funciona, é preciso alterar os arquivos de configuração:

Em ambiente windows precisa alterar o arquivo standalone.conf.bat adicionando a linha abaixo após as outras linhas semelhantes a ela:
set "JAVA_OPTS=%JAVA_OPTS% -Duser.language=pt -Duser.country=BR"

Em ambiente linux precisa alterar o arquivo standalone.conf adicionando a linha abaixo ao final do arquivo:
JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"

Abraço!
Adriano Schmidt