PDF de programación - Búsquedas en Oracle10g case-insensitive - Programación y PL/SQL - Orasite.com

Imágen de pdf Búsquedas en Oracle10g case-insensitive - Programación y PL/SQL - Orasite.com

Búsquedas en Oracle10g case-insensitive - Programación y PL/SQL - Orasite.comgráfica de visualizaciones

Publicado el 14 de Enero del 2017
952 visualizaciones desde el 14 de Enero del 2017
237,9 KB
2 paginas
Creado hace 7a (11/07/2016)
Búsquedas en Oracle10g case-insensitive - Programación y PL/SQL - Orasite.com

Escrito por Administrator
Miércoles, 22 de Diciembre de 2010 21:00 -
1. Objetivo


El objetivo de este documento es mostrar cómo parametrizar la base de datos oracle para que
se puedan realizar búsquedas en una base de datos ORACLE 10g, siendo sensible esta
búsqueda a mayúsculas y a minúsculas y distinguiendo también los acentos.

2. Introducción


Las operaciones dentro de una base de datos oracle siempre son sensibles a mayúsculas,
minúsculas y a los acentos. Algunas veces es necesario realizar búsquedas que no sean
sensibles a mayúsculas y minúsculas y realizar comparaciones sin tener en cuenta los acentos.

En las versiones anteriores de base de datos, este “problema” se tenía que solventar utilizando
las funciones NLS_UPPER y NLS_LOWER . Estas funciones cambiaban la palabra buscada de
mayúsculas a minúsculas (o viceversa) para poder realizar este tipo de búsquedas.

Estas dos funciones  pueden ser incómodas a la hora de utilizarlas puesto que necesitan
usarse en la lógica del programa en casa búsqueda. Una solución parcial a este problema se
obtuvo en la versión ORACLE9i Release 2(9.2), usando la búsqueda mediante
GENERIC_BASELETTER el cual agrupa todos los caracteres basados en el “valor base”.

3. Ejemplo de búsquedas en Oracle 10g


Pongamos un ejemplo para ver cómo realizar esta búsqueda pudiendo distinguir entre
mayúsculas, minúsculas y acentos. Vamos a crear una tabla denominada persona con un único
atributo denominado nombre y vamos a introducir los siguientes datos:

CREATE TABLE persona (nombre VARCHAR2(20));
INSERT INTO persona VALUES (‘RAMON’);
INSERT INTO persona VALUES (‘Ramón’);
INSERT INTO persona VALUES (‘RAMon’);
INSERT INTO persona VALUES (‘ramón’);
INSERT INTO persona VALUES (‘ramon’);

Ahora con los valores por defecto que tiene la base de datos realizamos una búsqueda:

SELECT nombre FROM persona where nombre = ‘RAMON’
-------------------------------------------------
RAMON

1 / 2

Búsquedas en Oracle10g case-insensitive - Programación y PL/SQL - Orasite.com

Escrito por Administrator
Miércoles, 22 de Diciembre de 2010 21:00 -
Como observamos, en este caso no se ha hecho distinción entre mayúsculas y minúsculas y
sólo se obtiene el resultado idéntico a nuestra comparación. Como hemos dicho en algunos
casos es necesario obtener todos los demás datos sin tener en cuenta si es mayúscula o
minúscula o que contenga acentos. Para ellos vamos a realizar las siguientes modificaciones
en nuestra sesión:

ALTER SESSION SET NLS_COMP=ANSI;
ALTER SESSION SET NLS_SORT=GENERIC_BASELETTER;

Una vez realizados estos cambios realizamos la misma consulta que hemos hecho antes:

SELECT nombre FROM persona where nombre = ‘RAMON’
-------------------------------------------------
RAMON
Ramón
RAMon
ramón
ramon

Todas estas anotaciones funcionan cuando utilizamos expresiones de igualdad, si queremos
utilizar el operador like, lo anteriormente explicado no sirve puesto que no está soportado.
No obstante si queremos realizar búsquedas utilizando like y que sean case- insensitive habría
que utilizar la función REGEXP_LIKE con las modificaciones anteriormente explicadas.

Ejemplo de regexp_like:

SELECT  nombre FROM persona WHERE regexp_like ( name,’Ramon’);

2 / 2
  • Links de descarga
http://lwp-l.com/pdf1297

Comentarios de: Búsquedas en Oracle10g case-insensitive - Programación y PL/SQL - Orasite.com (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad