用于将String Array插入Oracle表的Groovy代码

时间:2015-08-14 14:08:56

标签: arrays grails groovy oracle11g

我有一个groovy程序,代码如下:

String[] conceptArray = conceptList.toArray()

我正在尝试将conceptArray插入到Oracle表中,如下所示

sql.execute("插入OFFICE.PERSON(CONCEPT)值(?)",[conceptArray]);

但是上面的代码没有在表Person中插入值。请帮我纠正上面的代码。

2 个答案:

答案 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])