Я хочу получить значение из базы данных с помощью 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 [print] select operatetime from sr_sendreceive_sample where sampleid = 1cfacfa4-eb06-4413-b060-9507bdebd1eb
mainFlow.feature:72 - javascript evaluation failed: db.readValue(foo.getBatchIDSQL), StatementCallback; bad SQL grammar [select operatetime from sr_sendreceive_sample where sampleid = 1cfacfa4-eb06-4413-b060-9507bdebd1eb]; nested exception is java.sql.SQLSyntaxErrorException: Unknown column '1cfacfa4' in 'where clause'
Мой вопрос: из журнала вы видите, что неизвестный столбец «1cfacfa4» не ожидается, он должен быть «1cfacfa4-eb06-4413-b060-9507bdebd1eb»
ПОЖАЛУЙСТА, прочитайте это очень внимательно: stackoverflow.com/a/52078427/143475
Попробуйте иметь строки в SQL в кавычках:
* def sql = "select operatetime from sr_sendreceive_sample where sampleid = '" + sampleId + "'"
Хорошо, я вижу, что запрос должен быть: выберите время работы из sr_sendreceive_sample, где sampleid = '1cfacfa4-eb06-4413-b060-9507bdebd1eb'. Однако как мне пометить одинарную кавычку sampleId?