Pregunta

Esta es una consulta de trabajo sencillo y sin variables de enlace:

select * from table1 where time_stamp > sysdate - INTERVAL '1' day;

donde time_stamp es de tipo DATE.

I debería ser capaz de introducir cualquier número de días en la consulta anterior utilizando variable de enlace.

Así que trató lo siguiente y no parece que el trabajo:

select * from table1 where time_stamp > sysdate - INTERVAL :days day;

I intentado entrar en la entrada numérica tanto como 10 y '10', por ejemplo. Se obtiene ORA-00933 error en 10g.

¿Fue útil?

Solución

El INTERVAL '1' day cadena en su búsqueda original es un literal intervalo, es decir, se evalúa por el analizador a un solo valor. No se puede sustituir parte de ella con una variable de vinculación.

Si en lugar de utilizar NUMTODSINTERVAL( 1, 'DAY' ), entonces 1 es un literal entero que usted debe ser capaz de reemplazar con una variable de vinculación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top