1

私のクエリは、SQL ServerManagementStudioを使用して機能します。ただし、名前付きパラメーターと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 に答える