gpt4 book ai didi

arrays - 尝试查找任何 int 数组时出错

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

我目前正在 PostgreSQL 中开发一个函数,它接受一个整数数组。函数中的所有内容都按预期工作,但是在函数中的某个时刻我执行了以下操作:

     EXECUTE 
'INSERT INTO tmptable (user_id)
SELECT DISTINCT user_id FROM user_skills
WHERE skill_values_id=ANY('||selected_skills||')';

我的函数能够在代码的其他位置读取数组,但是这部分会抛出以下错误:

程序执行失败

 ERROR:  malformed array literal: "
INSERT INTO tmptable (user_id)
SELECT DISTINCT user_id FROM user_skills
WHERE skill_values_id=ANY("

最后,错误消息底部有一行内容:

DETAIL:  Array value must start with "{" or dimension information.

有什么想法可以让 any 和 integer 数组更好地发挥作用吗?我假设它与 || 有关将其集中转换为字符串?

最佳答案

不要连接值,而是使用参数:

 EXECUTE 
'INSERT INTO tmptable (user_id)
SELECT DISTINCT user_id FROM user_skills
WHERE skill_values_id=ANY($1)'
using selected_skills;

手册中的更多详细信息:

https://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

关于arrays - 尝试查找任何 int 数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220769/

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