2017-05-04 12 views
0

に準備されたステートメントを使用して(自動テスト)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'" 

オプション2

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

私は明確などこにでもカット答えを見つけるdidntの、私はそれらを一緒に掻き取っ。

・ホープこれはあなたが何をすべき誰か

+0

これは質問ですか? –

+0

いいえ、私はそれを自分で解決しました。共有のように感じた。 質問があると思いますが、可能な改善がありますか? –

+0

Oracle **でのこの種のコーディングでは、バインド変数を使用しないで、 'UPDATE tupd t0 set XXX = 'xxx' WHERE t0.YYY = '1'のようなステートメントにつながります。私。ステートメントは実行ごとにハード解析されます。 –

答えて

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文字列にテーブル名を追加

+0

これはGroovy SQLを使ったコーディングです。**引用符で囲まれた文字列は追加されませんが、 'UPDATE tupd t0 set XXX =:1 WHERE t0.YYY =:2'のようなバインド変数が**使用されます。残念ながら、Groovy SQLはprepareStatementをサポートしていないので、各実行時に*ソフト*解析されます。 –

関連する問題