Используя подготовленное заявление в Groovy

Это для целей тестирования (автоматическое тестирование) SoapUI

def status = testRunner.testCase.getPropertyValue( "Status" )
def grid = testRunner.testCase.getPropertyValue( "Grid" )+"_V"
def grid1

if (["TABLE1","TABLE2"].contains(grid))
     grid1 ="HUBCFG."+grid
else grid1 = "SDM."+grid

Опция 1

sql.executeUpdate "UPDATE " +grid1+" t0 set XXX='$status' WHERE t0.YYY='$grid'"

Option2

String bql = "UPDATE $grid1 t0 set XXX='$status' WHERE t0.YYY='$grid'"
sql.executeUpdate bql
sql.commit()
log.info("Successfully committed "+grid1+ " To " + status)

Я нигде не нашел четких ответов, поэтому соскреб их.

Надеюсь, это поможет кому-то

1 ответ

Ты должен сделать:

sql.executeUpdate "UPDATE ${Sql.expand(grid1)} t0 set XXX=$status WHERE t0.YYY=$grid"

Или же

def bql = "UPDATE ${Sql.expand(grid1)} t0 set XXX=$status WHERE t0.YYY=$grid"

Вам будут добавлены одинарные кавычки, а Sql.expand позволяет встраивать такие вещи, как имена таблиц, в результирующую шаблонную строку Groovy.

Другие вопросы по тегам