Hola, Tengo problema con indices con función
No se como funcionan los indices con función en Oracle 8i.
Para optimizar la siguiente consulta yo cree un indice con función de la siguiente manera :
Create index idx_tabla001 on tabla to_char(fecha,'dd/mm/yyyy');
Pero al hacer la consulta de esta forma (abajo) y usar la función no utiliza el indice (según el Explain plan).
Select campo
from tabla
where to_char(fecha,'dd/mm/yyyy' = to_char(sysdate,'dd/mm/yyyy')
Si la cambio por la siguiente (abajo), si usa el indice pero entrega un error "not a valid month":
Si lo cambio por este otro, no encuentra registros por el formato del campo fecha (tiene horas)
Select campo
from tabla
where fecha = to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy')
Me puedes explicar que me falta o como funciona por favor.
Gracias
Atentamente.
Osvaldo Valenzuela.
El problema es que el campo "fecha" tiene horas
Para optimizar la siguiente consulta yo cree un indice con función de la siguiente manera :
Create index idx_tabla001 on tabla to_char(fecha,'dd/mm/yyyy');
Pero al hacer la consulta de esta forma (abajo) y usar la función no utiliza el indice (según el Explain plan).
Select campo
from tabla
where to_char(fecha,'dd/mm/yyyy' = to_char(sysdate,'dd/mm/yyyy')
Si la cambio por la siguiente (abajo), si usa el indice pero entrega un error "not a valid month":
Si lo cambio por este otro, no encuentra registros por el formato del campo fecha (tiene horas)
Select campo
from tabla
where fecha = to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy')
Me puedes explicar que me falta o como funciona por favor.
Gracias
Atentamente.
Osvaldo Valenzuela.
El problema es que el campo "fecha" tiene horas
1 Respuesta
Respuesta de pedrito12
1