Значение усекается в объекте JSON, когда в строковом значении содержится символ «-» - PullRequest
0 голосов
/ 28 мая 2019

Я хочу получить значение из базы данных с помощью SQL-запроса (sampleId, который содержит знак '-'), однако строка запроса усекается.

Вот некоторые из моих сценариев, гдеsampleId извлекается из последнего вызова API:

   * json result = response[0].result
    * print result
    * def personId = result[0].personid
    * def sampleId = result[0].sampleid

Заданный путь 'srehr / SendSample'

    * def config = read('classpath:utils/yntestDBConfig.json')
    * def DbUtils = Java.type('utils.DBUtils')
    * def db = new DbUtils(config)

    * def foo = {getBatchIDSQL: '#("select operatetime from sr_sendreceive_sample where sampleid = " + sampleId)'}
    * print foo.getBatchIDSQL

Вот указанный журнал в отчете:

09: 00: 06.130 [печать] выберите время выполнения из sr_sendreceive_sample, где sampleid = 1cfacfa4-eb06-4413-b060-9507bdebd1eb

mainFlow.feature: 72 - сбой оценки javascript: db.readValue (foo.getBatchIDSQL), StatementCallback;неверная грамматика SQL [выберите время выполнения из sr_sendreceive_sample, где sampleid = 1cfacfa4-eb06-4413-b060-9507bdebd1eb];вложенное исключение: java.sql.SQLSyntaxErrorException: неизвестный столбец '1cfacfa4' в 'предложении where'

Мой вопрос: из журнала вы видите, что неизвестный столбец '1cfacfa4' не ожидается, он должен быть'1cfacfa4-eb06-4413-b060-9507bdebd1eb'

1 Ответ

1 голос
/ 28 мая 2019

Попробуйте использовать строки в SQL в кавычках:

* def sql = "select operatetime from sr_sendreceive_sample where sampleid = '" + sampleId + "'"
...