【发布时间】:2020-01-21 21:25:37
【问题描述】:
我正在涉足 Postgres 存储过程/函数的世界,但遇到了一些刚起步的困难。按照我遇到的文档和各种示例,我编写了函数
CREATE FUNCTION array_intersect(a INT[],b INT[]) RETURNS INT[] AS $$
BEGIN
DECLARE result INT[];
SELECT INTO result ARRAY(
SELECT UNNEST($1) INTERSECT SELECT UNNEST($2)
return result;
END; $$
LANGUAGE plpgsql;
只看到诸如
之类的错误查询错误:错误:“INTO”处或附近的语法错误 第 4 行:选择结果数组( 上下文:无效的类型名称“INTO 结果数组( 选择未嵌套($1) 相交选择未嵌套($2) 返回结果”
我显然在这里做错了什么,但我看不出它可能是什么。据我所知,我有
- 在函数中正确声明了两个参数及其类型
- 表示该函数应返回一个 int 数组作为其结果
- 声明了一个变量来保存结果
- 用选择填充它
- 返回结果
我发现 Postgres 函数语法相当晦涩,但也许这取决于我的新手感知。我怎样才能正确使用这种语法?
【问题讨论】:
标签: postgresql function stored-procedures