我有一个函数接受两个参数,从表中返回一些数据。希望将返回的行插入另一个函数中的临时表(结构与函数输出相同)。
像这样试过:

CREATE TEMP TABLE tmp1 (col1 int,  col2 int) ON COMMIT DROP;

WITH x as (select function_name(p1, p2))
    insert into tmp1 select * from x;

函数RETURNS TABLE(val1 integer, val2 integer)
选择不起作用。
ERROR:  column "col1" is of type integer but expression is of type record
HINT:  You will need to rewrite or cast the expression.

我该怎么办?

最佳答案

这边呢?..

insert into tmp1 select * from function_name(p1, p2);

07-26 00:14