- - PR -
SQLパラメータ
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-10-10 14:57
ORACLEのSQLでLIKE文を使用する際、String型でSQLパラメータで値を埋め込みたいのですが
SQLの不正のエラーで終了してしまいます。 SetStringで'(シングルコーテーション)を自動で付加している為と思いますが。 LIKE文でSQLパラメータを使用する方法はあるのですか?? SQL> SELECT * FROM TABLENAME WHERE ID LIKE '%?%' 埋め込み> stmt.SetString(1,"999"); ちなみに "SELECT * FROM TABLENAME WHERE ID LIKE '%" + "999" + "%'" の書き方は出来れば使用したくありません。 ご教授お願いします。 | ||||||||||||
|
投稿日時: 2007-10-10 15:34
これが本当なら「Like ?」にすれば良いのでは? | ||||||||||||
|
投稿日時: 2007-10-10 15:40
そうですね
SELECT * FROM TABLENAME WHERE ID LIKE ? stmt.SetString(1,"%999%"); でいいですね… なんか申し訳ないです。 早速試してみます。 | ||||||||||||
|
投稿日時: 2007-10-10 15:49
そのままではありませんが、
_________________ もしもし@RMAN 友の会 | ||||||||||||
|
投稿日時: 2007-10-11 09:06
こあらさん、もしもしさんありがとうございます。
意図した結果になりました。 | ||||||||||||
|
投稿日時: 2007-10-11 13:50
Oracleでは試していませんが、
WHERE XXX like '%' || ? || '%' みたいな方法もいかがでしょうか。 ?にバインドする値は、どのみちワイルドカードのエスケープが必要ですが、 入力値使うことができますよ。 |
1