Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Monografías / FAQ - Preguntas frecuentes sobre Oracle - ¿Porqué una conversión en el WHERE desactiva?

FAQ - Preguntas frecuentes sobre Oracle - ¿Porqué una conversión en el WHERE desactiva?

 ----- 
Creative Commons Monografía de José Manuel - 27 de Agosto de 2005
Temas Relacionados: Oracle
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

Creative Commons License
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?