1

我的查询使用 sql server management studio 工作。但是我无法让查询使用命名参数和 springsJDBCTemplate。

所以实际的sql需要工作正常:

select colA from table1 where colb like N'lem%'

以及我尝试过的片段:

String paramA = "N'lem%'";

select colA from table1 where colb like :paramA

我正在使用名为ParamterJDBCTemplate 的弹簧。N 指定 nvarchar 和 unicode 编码,因为实际参数是用外语编码的,例如西里尔语。

4

2 回答 2

2

N' 在向 SSMS 中的文本 SQL 解析器呈现一些文本时很有用,但是当您通过 spring 使用参数化查询时,DON'T!字符串本身应该是 Unicode,框架通过将参数声明为 NVarchar 以及正确编组参数来为您处理它。

String paramA = "lem%";

我不相信您甚至不应该在字符串中使用单引号,我知道您之所以包含单引号只是因为 N' 表示法。

于 2012-09-26T10:36:01.447 回答
0

您可能想尝试转义序列

String paramA = "N\'lem%'";

http://docs.oracle.com/javase/tutorial/java/data/characters.html

于 2012-09-26T10:36:44.627 回答