2

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

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错误。

4

1 回答 1

10

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

如果您改为使用NUMTODSINTERVAL( 1, 'DAY' )1,则 1 是一个整数文字,您应该可以将其替换为绑定变量。

于 2010-05-13T19:05:09.277 回答