0
我想为一个字符串数组传递给准备好的声明的命名参数:传递一个值给定参数
声明:
SELECT *
FROM FOOBAR
WHERE HOSTID IN (:hostIds)
ORDER BY NAME;
类型HOSTID是号码。
我想传递的值在我的数据库中保存为字符串, g .:'1,3,37'。 我已经尝试了各种方法,但我无法让它工作。
第一:按照原样传递此值。 问题:使用一个值('1')可以正常工作,但由于oracle将其解释为一个值('1,3') - > 1.3(?),因此不会使用多个值。
第二:创建收集,构建一个java.sql.Array并传递它。 问题::(我已经创建了一个集这样的不一致的数据类型:
CREATE OR REPLACE TYPE VARCHAR2_ARRAY IS TABLE OF VARCHAR2;
并试图建立一个数组,并使用
statement.setArrayAtName("hostIds", value);
但是,这也不能工作
。有什么建议吗?