【问题标题】:How to use output of one jdbc request to insert data for another jdbc query如何使用一个 jdbc 请求的输出为另一个 jdbc 查询插入数据
【发布时间】:2019-07-19 03:15:56
【问题描述】:

我正在使用第一个 JDBC 请求从我的 oracle DB 中获取一列的值。我将其存储为输出变量“DCN”。现在我需要将从这个查询中提取的所有数据插入到我的第二个 JDBC 请求中。我想知道是否有一种方法可以在一个查询中插入数据,而不是使用每个控制器循环遍历变量“DCN”中存在的每个值。 以下是我在第二个 JDBC 请求中使用的查询,它是 ForEach 控制器的子节点

INSERT INTO Data (FILENET_DCN)
VALUES ('${DCN}');
Select @@rowcount;

如果我尝试在 ForEach 控制器之外使用此查询,那么“${DCN}”(文字)将按原样插入到表中,而不是值。

对于每个控制器:

ForEach controller

【问题讨论】:

  • 它应该可以工作。您是否使用调试采样器检查它是否具有 DCN 的值?
  • 是的,我也检查了调试采样器,我可以看到存储在 DCN 中的数据为:JMeterVariables: DATE1=02-Jul-2018 DATE2=01-Feb-2017 DATE3=01-Mar-2016 DATE4 =01-Apr-2017 DCN_#=5 DCN_1=a1 DCN_2=a2 DCN_3=a3 DCN_4=a4 DCN_5=a5 DCN_id=a5 另一个观察结果:如果我使用 DCN 作为结果变量,我可以看到值被插入到查询中。但如果我将 DCN 作为变量名,它就不会这样做
  • 显示 ForEach 控制器
  • 图片添加到问题本身

标签: jmeter


【解决方案1】:

使用 ForEach 的输出变量DCN_id

  VALUES ('${DCN_id}');

【讨论】:

  • 这是我已经在使用的,但我正在尝试找出一种更有效的方法。
  • @vsingh 在这个问题中你的问题是 ${DCN}" (文字)是什么得到
  • 对,如果我尝试使用,我就会开始得到文字文本。以下代码(JDBC 请求)没有每个循环。在 for each 中插入查询会增加更多时间,因为它会分别遍历 FCN 中的每个值。所以我想尝试一次插入所有值,这可能会浪费时间 INSERT INTO Data (FILENET_DCN) VALUES ('${DCN}');
猜你喜欢
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
相关资源
最近更新 更多