gpt4 book ai didi

sql - 在 PL/SQL 中的 With 子句之后使用 for 循环

转载 作者:行者123 更新时间:2023-12-04 17:45:14 24 4
gpt4 key购买 nike

我使用 PL/SQL。我正在尝试在 with 子句中定义临时表后立即进行 for 循环。但是,我在首先进行 SELECT 查询时遇到错误。

例如

WITH TMP1 AS (.....), TMP2 AS (......), TMP3 AS (......)

FOR R IN (SELECT DISTINCT ..... FROM TMP1 WHERE .....)
LOOP
SELECT .... FROM TMP2, TMP2 WHERE TMP2.... = R..... ....

我该怎么做?

谢谢

最佳答案

您不能在整个语句之外访问 CTE。并且您不能在 CTE 的最终 SELECT 之外访问 CTE 的各个部分。

你需要把整体 CTE(包括最后的 SELECT 语句)进入游标循环:

FOR R IN (WITH TMP1 AS (.....), 
TMP2 AS (......),
TMP3 AS (......)
SELECT DISTINCT .....
FROM TMP1
JOIN temp2 ON ...
JOIN temp3 ON ...
WHERE .....)
LOOP
-- here goes the code that processes each row of the query
END LOOP;

关于sql - 在 PL/SQL 中的 With 子句之后使用 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com