- - PR -
ODP.NETを使った曖昧検索
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-28 20:53
ODP.NETを使った曖昧検索について教えていただきたいのですが、
VB.NETにてOracleに検索を行う場合のバインドする変数が 曖昧検索で使用する検索条件(以下のような)に当たる場合 エラーになってしまいます。 曖昧検索の検索条件にバインドは使えないのでしょうか? cmd.CommandText = "SELECT * FROM TABLE WHERE FIELD LIKE %:ename%" Dim pEname As OracleParameter = cmd.Parameters.Add("ename", "steve") | ||||
|
投稿日時: 2007-02-28 21:03
あいまい検索の%をCommandText中にではなく、 パラメータの値に指定してあげてください。 | ||||
|
投稿日時: 2007-02-28 22:55
いま、手元に試す環境がないので間違っていたら申し訳ありません。
cmd.CommandText = "SELECT * FROM TABLE WHERE FIELD LIKE '%' || :ename || '%'" でいけませんか? | ||||
|
投稿日時: 2007-03-01 07:36
ename 内の特殊文字(%のこと)を無効化してから、NALさんの方法
_________________ | ||||
|
投稿日時: 2007-03-02 10:18
皆様、有難う御座います。
cmd.CommandText = "SELECT * FROM TABLE WHERE FIELD LIKE %:ename%" Dim pEname As OracleParameter = cmd.Parameters.Add("ename", "steve") を cmd.CommandText = "SELECT * FROM TABLE WHERE FIELD LIKE :ename" Dim pEname As OracleParameter = cmd.Parameters.Add("ename", "%steve%") としてみたり、 %steve%を\%steve\%や%%steve%%としてみたりしましたが、 うまくいきませんでした。 | ||||
|
投稿日時: 2007-03-02 10:18
皆様、有難う御座います。
cmd.CommandText = "SELECT * FROM TABLE WHERE FIELD LIKE %:ename%" Dim pEname As OracleParameter = cmd.Parameters.Add("ename", "steve") を cmd.CommandText = "SELECT * FROM TABLE WHERE FIELD LIKE :ename" Dim pEname As OracleParameter = cmd.Parameters.Add("ename", "%steve%") としてみたり、 %steve%を\%steve\%や%%steve%%としてみたりしましたが、 うまくいきませんでした。 | ||||
|
投稿日時: 2007-03-02 10:31
まずは SQL*Plus 等でうまくいくような SQL にしてから ADO.NET でコーディングした方が良いと思いますよ。 SELECT * FROM TABLE WHERE FIELD LIKE %:ename% は構文エラーだし、 cmd.Parameters.Add("ename", "%steve%") は %steve% なんていうパラメータは存在しないですから。 _________________ かるあ のメモ と スニペット | ||||
|
投稿日時: 2007-03-02 21:23
http://otndnld.oracle.co.jp/easy/dotnet/aspdotnet/index.htmlは、参考になりませんか?
_________________ -------------------------------------------- HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ |