gpt4 book ai didi

postgresql - 在 plpgsql 函数中使用任何运算符时出现问题

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

当我运行这个函数时:

CREATE OR REPLACE FUNCTION insert_styles(raw_styles text)
RETURNS integer AS
$BODY$
declare
arr_value TEXT[];
upper_limit INTEGER;
style_ids INTEGER[];
BEGIN
arr_value := string_to_array(raw_styles, ',');
upper_limit := array_upper(arr_value, 1);

RAISE NOTICE 'arr_value = %', arr_value;
SELECT music_style FROM music_style INTO style_ids WHERE name = ANY (arr_value);
RETURN upper;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

使用此查询:

SELECT insert_styles('Techno,ddd,wer,WJKDF');

它给我以下错误:

NOTICE:  arr_value = {Techno,ddd,wer,WJKDF}
ERROR: array value must start with "{" or dimension information
CONTEXT: PL/pgSQL function "insert_styles" line 10 at SQL statement

我就是想不通。我是一个 postgres 新手!

再见!

最佳答案

假设您的 music_style 列具有整数数据类型,您只需添加 array_agg聚合到您的查询中:

SELECT array_agg(music_style)
FROM music_style
INTO style_ids -- style_ids is integer[]
WHERE name = ANY (arr_value);

关于postgresql - 在 plpgsql 函数中使用任何运算符时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181961/

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