这是一个没有绑定(bind)变量的简单工作查询:
select * from table1 where time_stamp > sysdate - INTERVAL '1' day;
其中 time_stamp
是 DATE
类型。
我应该能够使用绑定(bind)变量在上述查询中输入任意天数。
所以我尝试了以下方法,但似乎不起作用:
select * from table1 where time_stamp > sysdate - INTERVAL :days day;
我尝试将数字输入同时输入为 10 和“10”,例如。您在 10g 上遇到 ORA-00933 错误。
最佳答案
原始查询中的字符串 INTERVAL '1' day
是一个间隔文字,即它由解析器评估为单个值。您不能用绑定(bind)变量替换它的一部分。
如果您改为使用 NUMTODSINTERVAL( 1, 'DAY' )
,则 1 是一个整数文字,您应该能够用绑定(bind)变量替换它。
关于sql - 甲骨文 SQL : using bind variable for dates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829409/