- PR -

ODP.NETを使った曖昧検索

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-03-02 22:04
あ、ごめん。なんか、勘違いさせたみたい。

 検索する文字列が、"ste%ve" だったら、
SELECT * FROM TABLE WHERE FIELD LIKE 'ste%ve'
    steave
    steeeeeve
    steve
が、ヒットすることになります。なので、入力された文字の中から "%" や "_" をエスケープして、それからパラメータの値としなければならない、ということです。

 Oracle での文字列のエスケープって、どうやるんだっけ?
コード:
cmd.CommandText = "SELECT * FROM TABLE WHERE FIELD LIKE :ename ESCAPE '^'";
string escaped = string.Format("%{0}%"
    , inputValue.Replace("%", "^%").Replace("_", "^_"));
cmd.Parameters.Add("ename", "%" + escaped + "%");



_________________
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2007-03-05 11:07
皆様 有難う御座います。
解決できました。

NAL-6295さんに初めて投稿していただいた方法で
解決できていたみたいなのですが、
自分の設定方法が間違っておりました。

お手数をお掛けしました。

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