2010-05-13 28 views
2

這裏是沒有綁定變量的簡單工作的查詢:的Oracle SQL:使用綁定變量的日期

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

其中time_stampDATE類型。

我應該可以使用綁定變量在上述查詢中輸入任意天數。

所以我嘗試以下,似乎不工作:

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

我試圖進入數字輸入都爲10,「10」,對於如。 ORG-00933在10g上出現錯誤

回答

9

原始查詢中的字符串INTERVAL '1' day是間隔字面值,即它由解析器評估爲單個值。你不能用一個綁定變量替換它的一部分。

如果您改爲使用NUMTODSINTERVAL(1, 'DAY'),那麼1是一個整數字面量,您應該可以用一個綁定變量替換。