jmeter使用带有insert的参数时出现sql语法错误

uidvcgyl  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(364)

我正在使用jmeter在mysql数据库(memsqlserver,mysql语法)上加载测试查询。我正在使用jmeter的gui版本来创建一个测试计划xml文件,然后转到另一台服务器并以非gui模式运行该xml。
我运行了两个查询,一个选择,一个插入。这两个查询都使用我用脚本创建的csv文件中的参数。我的select语句对于从csv文件获取的参数工作得很好,但我的insert语句遇到语法错误:

INSERT INTO customer_transactions_current (`column_name1`, ... , `column_name12`)
VALUES ((${r1},${r2},${r3},${r4},${r5},${r6},${r7},${r8},${r9},${r10},${r11},${r12}));

在gui模式下的“csv data set config”下的查询部分中,我选择用“,”分隔数据,变量名是r1,…,r12。在查询本身下,我输入了参数类型,并再次输入了相同的名称,就像我对正在工作的select查询所做的那样。
运行查询时,我在第一列遇到语法错误(类型为datetime):

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '19:00:00,75400492,936988,56,1115,5,2156,8,2,3,909,3))' at line 2

我输入的日期格式为:“2018-11-2 20:00:00”,在csv文件中,它们不带撇号。
语法错误似乎与日期和它所在的位置有关。我尝试为该列输入str\u to\u date函数,但一直出现语法错误。但是,当我尝试从文件中获取一些值并手动运行查询时,它可以正常工作!所以我的想法是,它与jmeter在发出查询之前对空间的转换有关。
我的jmeter配置有问题吗?因为查询是手动确定的。

yi0zb3m4

yi0zb3m41#

添加撇号以插入和删除不必要的括号

INSERT INTO customer_transactions_current ('column_name1', ... , 'column_name12')
VALUES ('${r1}','${r2}','${r3}','${r4}','${r5}','${r6}','${r7}','${r8}','${r9}','${r10}','${r11}','${r12}');

如果您有日期问题,请参阅使用str\u to\u date

相关问题