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.
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.