Olá,
Tenho uma aplicação Servlet/JSP rodando com tomcat num servidor linux. Quando faço uma busca numa base Oracle 8.1.7.3 e na ordenação ele considera palavras acentuadas com menor peso. Por exemplo, uma busca ordenada ele está retornando assim:
A
E
I
Á
É
Í
O correto seria:
A
Á
E
É
I
Í
Parece que o Oracle tem variáveis pra controlar isso: NLS_LANG e NLS_SORT. Mas não estou bem certo. O tomcat tem algum recurso pra isso?
Alguma idéia??
Adriano.
Padrão de Ordenação
1 Resposta
Acho que a melhor alternativa é configurar o banco para tratar isso. Vc vai ter que configurar os parametros de idioma do banco. Quando eu executei o seguinte comando
select * from v$nls_parameters;
que retorna configuração de idioma o resultado foi o seguinte:
PARAMETER VALUE
--------------------------------- ---------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET WE8DEC
NLS_SORT BINARY
NLS_CALENDAR GREGORIAN
10 rows selected.
Depois eu setei o NLS_LANG para o
português:
set NLS_LANG=BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1
Daí, executando novamente o comando para ver as configurações o resultado foi:
PARAMETER VALUE
--------------------------------- ---------------------------------
NLS_LANGUAGE BRAZILIAN PORTUGUESE
NLS_TERRITORY BRAZIL
NLS_CURRENCY Cr$
NLS_ISO_CURRENCY BRAZIL
NLS_NUMERIC_CHARACTERS ,.
NLS_DATE_FORMAT DD/MM/RR
NLS_DATE_LANGUAGE BRAZILIAN PORTUGUESE
NLS_CHARACTERSET WE8DEC
NLS_SORT WEST_EUROPEAN
NLS_CALENDAR GREGORIAN
10 linhas selecionadas.
Agora, eu fiz essas configurações de modo que seja apenas temporarias. Me parece que há um arquivo para fazer com que sejam permanentes. Só que não lembro qual é. Tente apenas setar o NLS_LANGUAGE antes de iniciar o tomcat para ver no que dá.
valeuz…