Consultas en Oracle con filtros expuestos - No funcionan las tildes o acentos
Hola,
AL hacer una vista de Drupal 7 con filtros expuestos,
AL hacer una vista de Drupal 7 con filtros expuestos,
Las conexiones con bases de
datos: Mysql, Postgress aceptan consultas para encontrar palabras con o sin acentos
y tildes, minúsculas o mayúsculas, pero,
Oracle, no lo hace. Necesita una conversión a partir de oracle 10g
De los parámetros:
NLS_SORT = spanish =>
NLS_SORT =binary_ai
y del parámetro NLS_COMP =
BINARY => NLS_COMP =linguistic
De esta manera, Oracle ya
identificaría el orden alfabético con y sin tildes, y no será sensible a
acentos y munúsculas o mayúsculas, es por eso, que hay que hacer tal conversión
o alteración en la base de datos.
Se hizo probando una conexión Mysql con la misma
consulta y esta base de datos sí lo hace correctamente, es decir si buscar Álvarez
o Alvarez para Mysql es lo mismo, mientras que Oracle No.
Por supuesto, se debe tener acceso a la base de
datos y realizar ciertos cambios, en estos momentos, estamos esperando que IT
nos autorice el acceso a la base de datos Oracle y poder hacer ejecutar ciertas
sentencias sql, para luego realizar pruebas de consultas con y sin tildes.
Si queremos que al hacer la búsqueda NO distinga entre mayúsculas y minúsculas, ni acentos; asignaremos el valor LINGUISTIC a NLS_COMP (además de asegurarnos de que NLS_SORT=BINARY_AI):
SQL> alter session set nls_sort=binary_ai; //Establecer orden
SQL> alter session set nls_comp=linguistic; // tildes
SQL> select c1 from prueba_acentos where c1 like 'E%';
C1
--------------------
énero
Enero
ENERO
Énero
enero
SQL> alter session set nls_comp=linguistic; // tildes
SQL> select c1 from prueba_acentos where c1 like 'E%';
C1
--------------------
énero
Enero
ENERO
Énero
enero

Comentarios
Publicar un comentario