- PR -

Like演算子とバインド変数の組み合わせ

1
投稿者投稿内容
extream
ベテラン
会議室デビュー日: 2005/12/26
投稿数: 83
投稿日時: 2006-01-15 19:05
バインド変数をparamとした場合、

テーブル「tableMAIN 」の「名前」カラムをバインド変数「param」で絞り込みたいと考えいますが、以下のようにした場合、バインド変数部分が文字列として認識されてしまいます。
 ・SELECT * FROM tableMAIN WHERE 名前 LIKE '%aram%'
LIKE演算子の条件部分にバインド変数って定義できないのでしょうか??
extream
ベテラン
会議室デビュー日: 2005/12/26
投稿数: 83
投稿日時: 2006-01-15 19:18
自己レスです。
 ・SELECT * FROM tableMAIN WHERE 名前 LIKE '%aram%'
とするのではなく、
 ・SELECT * FROM tableMAIN WHERE 名前 LIKE aram
とし、 aramの設定値を「%田%」とすることで、希望の値を取得することができました。
ただ、「'%田%'」のようにシングルクォートで囲むと、データがヒットしませんでした。
バインド変数を用いる場合は、文字列フィールドが処理の対象でもシングルクォートは不要なのでしょうか?

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-15 20:04
それより対象が何の DB か判らないんですが...

引用:

extreamさんの書き込み (2006-01-15 19:18) より:

SELECT * FROM tableMAIN WHERE 名前 LIKE '%:Param%'


これは、引用符で囲まれているため :Param はバインド変数と見なされません。

引用:

ただ、「'%田%'」のようにシングルクォートで囲むと、データがヒットしませんでした。


普通に考えて、これは文字列リテラルなのではないでしょうか?

  OleDb のパラメータ設定

DBMS は違うでしょうけど、考え方は同じかと思っているのですが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
extream
ベテラン
会議室デビュー日: 2005/12/26
投稿数: 83
投稿日時: 2006-01-17 11:12
引用:

それより対象が何の DB か判らないんですが...



対象はORACLEです。



引用:

普通に考えて、これは文字列リテラルなのではないでしょうか?
  OleDb のパラメータ設定


確かにそうですね
今まで間違って記憶していました。

私の勘違いでスレを起こしてしまい申し訳ありませんでしたm(__)m

1

スキルアップ/キャリアアップ(JOB@IT)