0

如何WHERE COLUMN LIKE '%SearchTerm%'使用DevArt dotConnect for Oracle库?

理想情况下使用CommandParameter搜索词?


我没有高兴地尝试了以下方法:

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 本身不喜欢“Where column LIKE %: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 回答