Oracle SQL:日付のバインド変数を使用して
質問
ここでは、バインド変数のない単純な作業クエリがあります:
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」の両方の数値入力を入力しようとしました。あなたが取得する ORA-00933 の10グラムにエラーます。
解決
あなたの元のクエリ内の文字列INTERVAL '1' day
はすなわち、それは単一の値にパーサによって評価され、間隔リテラルです。あなたは、バインド変数でそれの一部を置き換えることはできません。
あなたの代わりにNUMTODSINTERVAL( 1, 'DAY' )
を使用する場合は、1あなたは、バインド変数で置き換えることができるはず整数リテラルです。
所属していません StackOverflow