Oracle sql:对日期使用绑定变量

时间:2010-05-13 18:50:48

标签: sql oracle ora-00933

这是一个没有绑定变量的简单工作查询:

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

其中time_stamp的类型为DATE

我应该可以使用绑定变量在上述查询中输入任意天数。

所以我尝试了以下操作,似乎不起作用:

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

我尝试输入数字输入,如10和'10',例如。您在10g上收到 ORA-00933 错误。

1 个答案:

答案 0 :(得分:9)

原始查询中的字符串INTERVAL '1' day是区间文字,即解析器将其评估为单个值。你不能用绑定变量替换它的一部分。

如果您改为使用NUMTODSINTERVAL( 1, 'DAY' ),那么1是一个整数文字,您应该能够用绑定变量替换它。