如何将 MSSQL 查询中的单引号转义为 JDBC 变量

How to escape single quote on MSSQL query into JDBC variable

在 Jmeter 中使用 JDBC 我需要转义对变量执行的单引号。

我原来的查询是:

select id from [Teams] where name = '${team}'.

但是,当我得到一个像这样的团队时:Ain M'lila,查询没有执行

我试过但没有用的是:

DECLARE @NevName nvarchar
SET @NevName = REPLACE({${team}, '''', ''''''')
select id from [test8].[Team] where name = @NevName

感谢任何解决方案

为了转义单引号,您需要 add another single quote to it

特别是您的情况,您可以使用 __groovy() function 使用额外的 ' 来逃避 ',例如:

${__groovy(vars.get('team').replaceAll("\'"\, "''"),)}

演示:

感谢 Dmitri T 的努力,但我的解决方案是:

JSR223 预处理器:以及内部:

String userString = vars.get("team");
String changedUserString = userString.replace("'","''");
vars.put("teamChanged", changedUserString);

然后用作查询:

select id from [test8].[Team] where name = '${teamChanged}'