質問

ここでは、バインド変数のない単純な作業クエリがあります:

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あなたは、バインド変数で置き換えることができるはず整数リテラルです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top