使用postgres中的存储过程的输出创建临时表

时间:2017-09-27 09:56:59

标签: sql postgresql function stored-procedures

我想要一个查询来创建一个包含Postgres中存储过程函数输出的表。

SQL:

CREATE TEMP TABLE new_project AS select project_insert('1','test2343','tew3234','ccc',1);

错误:

ERROR:  42P16: column "projects_insert" has pseudo-type record
LOCATION:  CheckAttributeType, heap.c:513

注意: project_insert是一个插入值并返回插入值的函数

1 个答案:

答案 0 :(得分:1)

问题是project_insert已使用RETURNS record声明,并且该类型对于列定义是非法的。

您必须在查询中指定结果列的名称和类型,如下所示:

CREATE TEMP TABLE new_project AS
   SELECT x, y, z
   FROM project_insert('1','test2343','tew3234','ccc',1)
        AS p(x integer, y text, z bytea);

用适当的名称和类型替换名称和类型。

有关详细信息,请参阅the documentation