Java Informix JDBC PreparedStatement UPDATE Multiset

Java Informix JDBC PreparedStatement UPDATE Multiset,java,sql,jdbc,informix,Java,Sql,Jdbc,Informix,我想更改表的MULTISET列,我的代码如下所示: PreparedStatement pstm = preparedStatement("UPDATE table SET mc = MULTISET{?, ?} WHERE ..."); pstm.setString(1, "..."); pstm.setString(2, "..."); pstm.execute(); 我得到错误:“非法尝试将集合类型转换为其他类型。” 这有什么问题?当我用实际值代替“?”时,一切都很好 顺便说一句。。。m

我想更改表的MULTISET列,我的代码如下所示:

PreparedStatement pstm = preparedStatement("UPDATE table SET mc = MULTISET{?, ?} WHERE ...");
pstm.setString(1, "...");
pstm.setString(2, "...");
pstm.execute();
我得到错误:“非法尝试将集合类型转换为其他类型。”

这有什么问题?当我用实际值代替“?”时,一切都很好

顺便说一句。。。mc的定义类似于MULTISET(CHAR(20)NOT NULL)


谢谢…

我使用JDBC Informix驱动程序3.50和Jython 2.5.1对其进行了测试,效果良好。也许您使用了一些旧版本的JDBC?我用
execute()
executeUpdate()
方法对它进行了测试。我的代码:

from java.sql import DriverManager
from java.lang import Class

Class.forName("com.informix.jdbc.IfxDriver")

db = DriverManager.getConnection(db_url, usr, passwd)
pstm = db.prepareStatement("UPDATE aaa_mc_test SET mc_test = MULTISET{?, ?}")
pstm.setString(1, "...")
pstm.setString(2, "...")
r = pstm.executeUpdate()
print('ok, updated: %d' % (r))
对于插入到
aaa\u mc\u test
表中的3条记录,它打印出
ok,更新:3