Tratamento de Strings com Oracle8i

3 respostas
javeloper

Fala pessoas,

não sei se seria aqui mesmo que deveria ter colocado minha dúvida (ou em Java Básico), mas aí vai:
Gostaria de Tratar uma string de um text field de um formulário (html) onde, por exemplo:
o usuário digitaria “joao”, para que essa string fosse procurada no banco de dados (Oracle8i). Só que no banco eu só tenho joão (com acento).
Minha pergunta é : Existe alguma função para tratar isso (assim como a função Stringqualquer.toUpperCase() que coloca tudo maiúsculo), tirando o acento caso o usuário coloque, ou ignorando os acentos do banco…
não sei se fui claro!

Obrigado!

3 Respostas

dreamspeaker

Cara, se você descobrir me avisa… :wink:

Seguinte, trocar os acentos no Java até que não vai ser tão complicado, você pode montar um algoritmo próprio ou então tentar usar uma classe como java.text.RuledBasedCollator.

O problema é o lado do Oracle. Existe uma função lá chamada Soundex(caracteres) que devolve a representação fonética de caracteres, mas até onde eu sei não funciona muito bem com os acentos em português. :frowning:

O problema que eu tive nesse tipo de pesquisa foi parcialmente resolvido porquê eu trabalho com quase todos os dados em memória, aí eu converto como eu quiser no Java. Mas não dá pra fazer isso com uma massa muito grande da dados.

TedLoprao
Não sei se te ajuda mas no bd vc pode criar uma função tipo:

FUNCTION FCT_RETIRA_ACENTOS

(P_TEXTO IN VARCHAR2)

RETURN VARCHAR2

IS

BEGIN

RETURN TRANSLATE(P_TEXTO, áàãâÁÀÃÂäÄéèêëÉÈÊËíìîïÍÌÎÏóòõôöÓÒÕÔÖúùûüÚÙÛÜçǪº, 'aaaaAAAAaAeeeeEEEEiiiiIIIIoooooOOOOOuuuuUUUUcC  ');

END;

E no select trazer a function da coluna…
Só que aí tu acaba ficando dependente do Oracle (ou, no mínimo de stored procedures)

Espero ter ajudado

cancao

Talvez esse outro post de outro forum possa lhe ajudar.

Até mais.

Criado 2 de julho de 2003
Ultima resposta 3 de jul. de 2003
Respostas 3
Participantes 4