【发布时间】:2015-06-30 20:43:37
【问题描述】:
我有一个这样组织的函数:
create function everything(waypoints waypoint)
returns table(node int, xy text array) as $$
BEGIN
create view results as ...
return query (select * from results);
END;
$$ LANGUAGE plpgsql;
我有一个表,其中的参数以waypoint 数据类型的结构方式组织。此表本身不是明确的waypoint 类型。
该函数按应有的方式创建,但是,我无法通过像这样传入我的表来调用它:
select everything(waypoints);
或select everything(select * from temp);
但它说后者在select 或附近有语法错误,而前者的列waypoints 不存在。
我该怎么做?
【问题讨论】:
-
为什么不立即让
everything接受temp?CREATE FUNCTION everything (waypoints temp) ...等等。 -
请始终提供您的 Postgres 版本。你的问题有点不清楚。我是否正确理解您要将整个表行转换为预定义的复合行类型?
标签: postgresql casting plpgsql