在postgresql中使用WITH查询中的EXECUTE

时间:2018-05-03 15:57:51

标签: postgresql function dynamicquery

我使用执行查询从表中提取数据。 现在我想将这些数据存储在某个变量中以用于其他操作,我不能使用临时表,所以我必须使用WITH查询。

--Something like this:

with ttable (col1, col2) as (execute 'select tcol1, tcol2 from tab_sample')
insert into tab_sam2 select col1,col2 from ttable;

现在这给了我执行错误,在执行时或附近说语法错误。

我该怎么做? 此外,是否有任何替代方法可以存储来自过程/函数中的表的多个数据而不使用数组或临时表

1 个答案:

答案 0 :(得分:1)

EXECUTE是PL / pgSQL语句,不能混合到SQL中。

为什么不这样做:

EXECUTE E'WITH ttable (col1, col2) as (\n'
         '      SELECT tcol1, tcol2 FROM tab_sample\n'
         '   )\n'
         'INSERT INTO tab_sam2\n'
         '   SELECT col1,col2 FROM ttable';