gpt4 book ai didi

java - 将 clojure vec 传递给 POSTGRES IN 语句(?)

转载 作者:行者123 更新时间:2023-11-29 13:29:05 24 4
gpt4 key购买 nike

我试图将一个字符串数组传递给一个 select 语句,但我一直收到错误:

 org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of clojure.lang.PersistentVector. Use setObject() with an explicit Types value to specify the type to use.

我知道列类型是正确的,看起来传递 vector 是罪魁祸首。执行此操作的正确方法是什么?

sql语句格式如下:

“SELECT * FROM said_table WHERE item_id IN (?)”

最佳答案

此答案假设您使用的是 jdbc 而不是 korma 或类似的东西,并且需要直接生成 sql 而不是通过某些工具:

in 指令要求您为列表中的每个项目创建一个 ?。当其他事情需要我手动构建 SQL 时,我最终使用了这种模式:

(let [placeholders (s/join ", " (repeat (count things-go-here) "?"))
query "SELECT * FROM said_table WHERE item_id IN (%s)"]
(exec-raw [(format query placeholders) things-go-here] :results)
....)

关于java - 将 clojure vec 传递给 POSTGRES IN 语句(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28055503/

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