Inicio /
Wikis /
Monografías /
FAQ - Preguntas frecuentes sobre Oracle - ¿Porqué una conversión en el WHERE desactiva?
5. ¿Porqué una conversión en el WHERE desactiva?
Cuando se hace una consulta y la condición de filtro incluya una función de conversión (TO_NUMBER, TO_DATE, etc.), esta se debe aplicar siempre que se pueda sobre un valor constante en vez de sobre una columna.
Por ejemplo, la siguiente consulta no utilizará ningún indice sobre <COLUMNA_VARCHAR>
SELECT <COLUMNAS>
FROM <TABLA>
WHERE TO_NUMBER(<COLUMNA_VARCHAR>) = 2;
Sin embargo, la siguiente consulta sí que utiliza los índices sobre la <COLUMNA_VARCHAR>
SELECT <COLUMNAS>
FROM <TABLA>
WHERE <COLUMNA_VARCHAR> = TO_CHAR(2);
Las conversiones implícitas siguen unas normas parecidas, pero teniendo en cuenta que Oracle aplicará la función de conversión sobre el valor alfanumérico:
Por ejemplo, esta consulta:
SELECT <COLUMNAS>
FROM <TABLA>
WHERE <COLUMNA_VARCHAR> = 2;
será interpretada del siguiente modo:
SELECT <COLUMNAS>
FROM <TABLA>
WHERE TO_NUMBER(<COLUMNA_VARCHAR>) = 2;
Por lo tanto, desactivará los índices. Sin embargo, esta otra consulta:
SELECT <COLUMNAS>
FROM <TABLA>
WHERE <COLUMNA_NUMBER> = '2';
será interpretada del siguiente modo:
SELECT <COLUMNAS>
FROM <TABLA>
WHERE <COLUMNA_VARCHAR> = TO_NUMBER('2');
Por lo que no desactivará los índices, ya que la función se aplica sobre el valor constante y no sobre la columna.
Autor y licencia de 'FAQ - Preguntas frecuentes sobre Oracle - ¿Porqué una conversión en el WHERE desactiva?'
José Manuel Extraído de: http://www.lawebdejm.com
Esta obra está bajo una licencia de Creative Commons.
|
|
|
|
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
|
|
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.
|
|
Wikis relacionados con 'FAQ - Preguntas frecuentes sobre Oracle - ¿Porqué una conversión en el WHERE desactiva?'
Existen programas cuya instalación es difícil, existen programas cuya configuración es difícil, existen programas cuyo...
Más »
Existen programas cuya instalación es difícil, existen programas cuya configuración es difícil, existen programas cuyo...
Más »
En este artículo respondemosa a las dudas más frecuentes que suelen tener empleados y directivos...
Más »
Debian es el nombre de una organización dedicada al desarrollo y mantenimiento de sistemas operativos...
Más »
Este artículo discute preguntas actuales de caracter teórico y metodológico en los estudios sobre la...
Más »
¿Estás seguro de que deseas eliminar este capítulo?