如何使用CTE中生成的表达式打开多个引用?
我使用反射器从同一个函数返回多个记录集,并使用CTE在整个处理过程中重复使用数据集。
我会使用临时表,但我是scarred after this experience。
我尝试过此操作,但是会导致语法错误:
WITH
expr1 (
select ... from ...
),
expr2 (
select ... from expr1 inner join ...
),
expr3 (
OPEN refcursor1 FOR select ... from expr2
)
OPEN refcursor2 FOR select ... from expr2 inner join ...
答案 0 :(得分:0)
您不能那样做,因为您不能在SQL语句中嵌入PL / pgSQL语句(OPEN
)。
如果要两个refcursors
,则必须运行两次查询。
也许您应该找出临时表有什么问题-例如,检查日志中的内存上下文转储。