我有一个groovy程序,代码如下:
String[] conceptArray = conceptList.toArray()
我正在尝试将conceptArray插入到Oracle表中,如下所示
sql.execute("插入OFFICE.PERSON(CONCEPT)值(?)",[conceptArray]);
但是上面的代码没有在表Person中插入值。请帮我纠正上面的代码。
答案 0 :(得分:1)
使用groovy.sql.Sql类: http://docs.groovy-lang.org/latest/html/api/groovy/sql/Sql.html
def sql=new groovy.sql.Sql(...)
String insert="insert into OFFICE.PERSON values (${conceptList.collect{'?'}.join(','})"
sql.executeUpdate(insert,conceptList)
答案 1 :(得分:0)
SQL预准备语句(使用GString和?语法创建)期望在?
所在的位置插入一个字符串,但是您传递的是List
。您需要将值列表转换为String
,您可以这样做:
String conceptsString = conceptList.join(',')
sql.execute("insert into OFFICE.PERSON(CONCEPT) values (?)", [conceptsString])