что касается «Правил для встроенных выражений», конкатенация строк не работает - PullRequest
1 голос
/ 23 мая 2019

Я извлекаю данные из базы данных с помощью SQL, мне нужно передать переменную в предложение where, однако я считаю, что конкатенация строк не работает, даже официальный пример

* def batchnum = "112344552"
* def getBatchIDSQL = '#("select id from sr_sendreceive where batchnum = " + batchnum)'
* print getBatchIDSQL
* def sendReceiveBatchid = db.readValue('#(getBatchIDSQL)')

Затем я попробовал официальный пример:

      # wrong !
      * def foo = 'hello #(name)'
      # right !
      * def foo1 = '#("hello " + name)'
      * print foo1

      * def name = 'test name'
      * def temp = 'hello ' + name
      * def foo2 = '#(temp)'
      * print foo2

Результат:

#("select id from sr_sendreceive where batchnum =" + batchnum)
#("hello " + name)
#(temp)

1 Ответ

0 голосов
/ 23 мая 2019

Извините, документы неверны. Это работает для не-JSON только для match. Как это:

* def batchnum = "112344552"
* def actual = 'select id from sr_sendreceive where batchnum = 112344552'
* match actual == '#("select id from sr_sendreceive where batchnum = " + batchnum)'

Внутри JSON это будет работать:

* def foo = { bar: '#("select id from sr_sendreceive where batchnum = " + batchnum)' }
* print foo

Спасибо, что указали на это, я обновлю документы.

...