0

DevArt dotConnect for Oracleライブラリを使用WHERE COLUMN LIKE '%SearchTerm%'するにはどうすればよいですか?

CommandParameterSearchTermにを使用するのが理想的ですか?


私は喜びなしで次のことを試みました:

cmd.CommandText =
  "SELECT ID, COLUMN_A, COLUMN_B FROM TABLE_A
   WHERE COLUMN_A LIKE :SearchTerm";


私はそれを使っています:

cmd.CommandText =
  "SELECT ID, COLUMN_A, COLUMN_B FROM TABLE_A
   WHERE COLUMN_A LIKE :SearchTerm";

cmd.Parameters.AddWithValue("SearchTerm", "%" + term.Replace('%', ' ') + "%");


しかし、私はその用語を%記号で囲むことに満足していません-正しいまたはより良い方法はありますか?

4

2 に答える 2

2

Oracle自体は「WherecolumnLIKE%:searchterm%」を好まないため、ワイルドカードが必要な場合は、パラメータの一部として追加する必要があります。

検索する列に全文索引を設定し、代わりにCONTAINSを使用することで、これを回避できます。これは、ワイルドカードを必要としません。これは、より強力な検索方法でもありますが、設定がより複雑です。

于 2011-02-23T11:20:23.363 に答える
2

このソリューションを試してください:

cmd.CommandText =
  "SELECT ID, COLUMN_A, COLUMN_B
   FROM TABLE_A
   WHERE COLUMN_A LIKE '%' || :SearchTerm || '%'";

cmd.Parameters.AddWithValue("SearchTerm", term);
于 2011-02-23T13:01:50.833 に答える