.comment-link {margin-left:.6em;}

Saturday, July 07, 2007

Consulta Ignorando Acentos

Algum tempo atrás, me fizeram uma pergunta sobre consulta sem considerar acentos. Quando respondi, falhei em pesquisar um pouco mais a fundo e então sugeri uma opção trabalhosa para resolver o problema.

Semana passada, fiz uma página de "eWho" - procura de ramais - que necessitava exatamente do mesmo mecanismo de busca, ou seja, que ignorasse acentos, maísculas e minúsculas. Como sempre recorro ao meu blog, vi no artigo que eu tinha que fazer uma tabela de conversão, pensei "não é possível!" e como sou muito preguiçoso, me restou ler o manual de globalização e encontrar exatamente o que precisava no capítulo 5.

Bastou dois alter session e a query vai ignorar os acentos.

ops$marcio:LX10G> select * from t where x = 'marcio';

no rows selected

ops$marcio:LX10G> alter session set nls_comp=linguistic;

Session altered.

ops$marcio:LX10G> alter session set nls_sort=binary_ai;

Session altered.

ops$marcio:LX10G> select * from t where x = 'marcio';

X
--------------------
Márcio
MÁRCIO
MARCIO

3 rows selected.

Labels: ,


This page is powered by Blogger. Isn't yours?