我使用执行查询从表中提取数据。 现在我想将这些数据存储在某个变量中以用于其他操作,我不能使用临时表,所以我必须使用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;
现在这给了我执行错误,在执行时或附近说语法错误。
我该怎么做? 此外,是否有任何替代方法可以存储来自过程/函数中的表的多个数据而不使用数组或临时表?
答案 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';