带有 refcursors 的 Postgres CTE
Postgres CTE with refcursors
如何使用 CTE 中生成的表达式打开多个 refcursor?
我使用 refcursors 来 return 来自同一函数的多个记录集,并在整个处理过程中重复使用数据集的 CTE。
我会使用临时表,但我 。
我试过了,但它导致语法错误:
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 ...
你不能那样做,因为你不能在 SQL 语句中嵌入 PL/pgSQL 语句 (OPEN
)。
如果需要两个 refcursors
,则必须 运行 查询两次 refcursors
。
也许您应该找出临时文件的问题 table — 例如,检查日志中的内存上下文转储。
如何使用 CTE 中生成的表达式打开多个 refcursor?
我使用 refcursors 来 return 来自同一函数的多个记录集,并在整个处理过程中重复使用数据集的 CTE。
我会使用临时表,但我
我试过了,但它导致语法错误:
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 ...
你不能那样做,因为你不能在 SQL 语句中嵌入 PL/pgSQL 语句 (OPEN
)。
如果需要两个 refcursors
,则必须 运行 查询两次 refcursors
。
也许您应该找出临时文件的问题 table — 例如,检查日志中的内存上下文转储。