Oracle - Busquedas diferenciando acentuacion

 
Vista:

Busquedas diferenciando acentuacion

Publicado por EDU (1 intervención) el 31/01/2006 16:15:52
Hola a todos!!
Tengo una aplicacion web JAVA con servlets q acceden a una Base de datos ORACLE y kiero (de alguna forma...) q mis consultas no distingan en las palabras con acentos de las no acentuadas...
Alguien sabe alguna forma...
GRACIAS DE ANTEMANO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Busquedas diferenciando acentuacion

Publicado por JSL (186 intervenciones) el 31/01/2006 19:20:34
Espero sirva ....

-----------------------------------------------------------------------------------------------
En el QUERY cambia por ejemplo: á por a

Imagina que en una variable tienes una cadena Adrián, entonces :

SQL> insert into prb values ('Adrián');

1 row created.

SQL> select * from prb;

C
----------
Adrián

SQL> select c,replace(c,'á','a') from prb;

C REPLACE(C,
---------- ----------
Adrián Adrian

SQL>

-----------------------------------------------------------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busquedas diferenciando acentuacion

Publicado por EDU (1 intervención) el 01/02/2006 08:59:23
GRACIAS,
no conocia esa opcion...
pero he probado y creo q no me sirve xq la implantacion en la aplicacion seria muy costosa...
Tendre q seguir buscando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busquedas diferenciando acentuacion

Publicado por JSL (186 intervenciones) el 01/02/2006 16:30:47
Y si haces una funcion de base de datos ???

Recordando el ejemplo ...

SQL> select c,replace(c,'á','a') from prb;

C REPLACE(C,
---------- ----------
Adrián Adrian

SQL>

Entonces haces la funcion de base de datos:

create or replace function f1 ( cadena varchar2 ) return number is
rs number(2);
begin
rs := instr(cadena,'á');
return rs;
end;
/

select c,f1(c) from prb
/

C F1(C)
-------------------- ----------
Adrián 5

La funcion INSTR devuelve la posicion donde se encuentra el caracter a buscar, si no lo encuentra devuelve CERO

Espero te sirva ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar