2017-03-03 1 views
0

zu tun Wir versuchen, groovy Test zu schreiben, wo wir vorhandenen Datensatz mit einigen der geänderten Werte duplizieren möchten. Unten ist der Sql. Wir übergeben die Liste mit 3 Werten.Versuch, Einfügen mit groovy und Ausführen in Ausnahme

insert into tableA (col1,col2, col3, col4) 
select ?, col2, col3, ? from tableA where col2=? 

Es wirft Ausnahme, wenn wir als die eingestellten Parameter versuchen auszuführen sind für nicht zugeordnet ‚?‘ in 'Select'-Klausel. Ich erinnere mich vage daran, dass ich in der Vergangenheit mit demselben Problem konfrontiert war, während ich jdbc praktizierte.

Wir verwenden Informix

enter image description here

Antwort

0

Mit groovy.sql.Sql Sie Folgendes tun:

import groovy.sql.Sql 

Sql db 
try { 
    // other methods of obtaining Sql exist but we'll use... 
    db = Sql.newInstance('url', 'user', 'pwd', 'yourDriver') 
    db.executeUpdate('insert into tableA (col1,col2, col3, col4) select ?, col2, col3, ? from tableA where col2 = ?', ['bind1', 'bind2', 'bind3']) 
} 
finally { 
    db?.close() 
} 
+0

Wir db.Execute verwenden .. mit executeUpdate ersetzt. Trotzdem haben wir denselben Fehler. – AVVD

+0

Das obige funktioniert mit Oracle, welche DB benutzen Sie? –

+0

wir verwenden informix – AVVD

Verwandte Themen