【发布时间】:2015-01-07 12:19:03
【问题描述】:
我有兴趣学习如何在 Postgres 中使用动态函数。我基本上需要一个动态函数来输出一个表或一个子表(从现有表中选择的几个列)。
我已经创建了以下eval() 函数,但它并没有像我希望的那样工作。
我希望我的函数返回作为函数中的字符串引入的查询的结果。该函数当前仅返回第一列中的第一个值 (enrich_d_dkj_p_k27ac)。看来我应该将我的 returns 从 text 更改为其他内容?
create or replace function eval() returns text
as
$body$
declare
result text;
begin
execute 'select enrich_d_dkj_p_k27ac,enrich_lr_dkj_p_k27ac,enrich_r_dkj_p_k27ac
from dkj_p_k27ac' into result;
return result;
end;
$body$
language plpgsql;
SELECT eval();
结果是:
eval text
2.4
但这基本上只是第一列的第一个值 - 我需要显示整个表格 - 或者换句话说 - 指示的 SELECT 的结果。
【问题讨论】:
标签: function postgresql plpgsql dynamic-sql