首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在postgresql中创建接受参数数组并返回表的函数

如何在postgresql中创建接受参数数组并返回表的函数
EN

Stack Overflow用户
提问于 2016-05-13 20:05:24
回答 1查看 43关注 0票数 0

下面是我的函数是什么样子的:

代码语言:javascript
复制
create or replace function datafabric.test(psi_codes text[])
returns table (asset character varying (255), parent_asset character varying (255))
as
$$
select asset, parent_asset 
from americas.asset a
left join americas.prod_int p on a.row_id = p.row_id
where root_asset_id in (select root_asset_id from americas.asset where p.name =  ANY($1))
$$ LANGUAGE 'SQL' VOLATILE;

然而,问题是我得到了这个

错误:函数datafabric.test()在函数创建期间不存在SQL state: 42883。

请注意,此功能可以工作。但是,我希望在pgadmin屏幕上输出结果。我现在不能这么做。

请帮帮忙。我正在使用PostgreSQL8.3版本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-14 02:01:54

PostgreSQL 8.3不支持函数的返回表。您还必须指定没有引号的函数的语言。

您可以通过以下方式实现类似的行为:

代码语言:javascript
复制
create or replace function 
       datafabric.test(psi_codes text[],
                       OUT asset character varying (255),
                       OUT parent_asset character varying (255))
       RETURNS SETOF RECORD as $$
select asset, parent_asset 
from americas.asset a
left join americas.prod_int p on a.row_id = p.row_id
where root_asset_id in (select root_asset_id from americas.asset where p.name =  ANY($1))
$$ LANGUAGE SQL VOLATILE;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37218540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档