【发布时间】:2010-02-19 12:04:20
【问题描述】:
我有一个在 MS SQL Server 上运行的数据库。我的应用程序通过 JDBC 和 ODBC 与之通信。现在我尝试使用准备好的语句。
当我插入一个数字(长)参数时,一切正常。当我插入一个字符串 参数它不起作用。没有错误消息,但结果集为空。
WHERE column LIKE ('%' + ? + '%') --inserted "test" -> empty result set
WHERE column LIKE ? --inserted "%test%" -> empty result set
WHERE column = ? --inserted "test" -> works
但我需要 LIKE 功能。当我将相同的字符串直接插入查询字符串(不是作为准备好的语句参数)时,它运行良好。
WHERE column LIKE '%test%'
对我来说,它看起来有点像双引号,但我从未在字符串中使用引号。我使用preparedStatement.setString(int index, String x) 进行插入。
是什么导致了这个问题? 我该如何解决?
提前致谢。
【问题讨论】:
标签: sql-server jdbc odbc prepared-statement