2

私はSQLクエリを持っています:

select * from table where id in (1,2)

1,2 は動的に追加するパラメータです。しかし、空のセットがある場合:

select * from table where id in ()

次に、このクエリ呼び出しの例外:

ERROR at line 1:
ORA-00936: missing expression

空のセットでSQLを作成するにはどうすればよいですか

4

2 に答える 2

4

いつでもnullセットに追加できるため、実際のセットが空の場合、構文エラーは発生しません。

select * from table where id in (null,1,2)

select * from table where id in (null)

,追加するすべてのアイテムの前に、それが最初のものかどうかを確認せずに出力できるため、ジェネレーターもより簡単になります。

もちろん、SQL を生成しているので、SQL インジェクションに対する標準的な予防措置が適用されます。生成する SQL の近くにユーザー入力を許可しないでください。

于 2013-03-29T11:57:10.440 に答える
0

これを試して

 select * from table where id in (null)
于 2013-03-29T11:57:43.067 に答える