【问题标题】:JMeter sql syntax error using parameters with insert使用带有插入的参数的JMeter sql语法错误
【发布时间】:2019-05-06 20:33:57
【问题描述】:

我正在使用 JMeter 在 mySQL 数据库(memsql 服务器、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}));

在“CSV 数据集配置”下的 gui 模式下的查询部分中,我选择用“,”分隔数据,变量名称为 r1,..,r12。 在查询本身下,我输入了参数类型,并再次输入了相同的名称,就像我为工作 SELECT 查询所做的那样。

当我运行查询时,我在第一列(日期时间类型)上遇到了语法错误:

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_TO_DATE 函数,但不断收到语法错误。 但是当我尝试从文件中获取一些值并手动运行查询时,它工作正常!所以我的想法是,在发送查询之前,它与 JMeter 的空格转换有关。

我的 JMeter 配置有问题吗?由于手动查询是确定的。

【问题讨论】:

  • 使用反引号分隔列名。
  • @jarlh 谢谢,我在原始查询中做了。我会在这里编辑它。

标签: mysql sql jmeter syntax-error sql-insert


【解决方案1】:

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

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

如果您有日期问题,请参阅使用STR_TO_DATE

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    相关资源
    最近更新 更多