gpt4 book ai didi

java - 在 JDBC 中使用 unnest(array[someArray]) 发送三个数组时出现异常

转载 作者:行者123 更新时间:2023-12-01 23:04:40 26 4
gpt4 key购买 nike

我无法将 3 个数组发送到 SQL 语句中,它会引发异常

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

我想发送 mmmccceee 中的 3 个数组。当我在 Postgres 控制台上尝试时,它工作正常,但当我在 Java 代码中尝试时,会抛出异常

org.postgresql.util.PSQLException: ERROR: cannot cast type record to integer
Position: 474

最佳答案

按照你编写的方式,PostgreSQL 认为你的整个参数字符串是一个整数。

而不是

unnest(array[:mmm])

使用

unnest(CAST(:mmm AS integer[])

但是参数必须看起来像

{1,23,456}

包括大括号。这是 PostgreSQL 中数组的字符串表示形式。

额外观察:为什么使用:mmm? JDBC 参数必须写为 ?

关于java - 在 JDBC 中使用 unnest(array[someArray]) 发送三个数组时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58406339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com