我无法将3个数组发送到sql脚本,它会引发异常
<code>select t.ttt, t.created_date, concat_ws('-',lp.mmm, lp.ccc, lp.eee ) from tasks t
join positions p on t.id = p.task_id
left join lte_position lp on p.id = lp.id
where t.ttt in (:identities) and (lp.mmm, lp.ccc, lp.eee) in
((select mmm,ccc,eee from ((select unnest(array[:mmm]) as mmm, unnest(array[:ccc]) as ccc, unnest(array[:eee]) as eee)) as temp))
order by t.ttt DESC</code>
我想在mmm,ccc,eee中发送3个数组,当我在postgres控制台中尝试时,它可以正常工作,但是当我在java代码中尝试时,抛出异常org.postgresql.util.PSQLException:错误:无法将类型记录转换为整数位置:474
您编写它的方式,PostgreSQL认为您的整个参数字符串都是单个整数。
而不是
unnest(array[:mmm])
使用
unnest(CAST(:mmm AS integer[])
但是参数必须看起来像
{1,23,456}
包括花括号。这是PostgreSQL中数组的字符串表示形式。
其他观察:为什么使用:mmm
? JDBC参数必须写为?
。