【发布时间】:2014-03-11 18:56:00
【问题描述】:
我创建了一个游标,它返回一组行。在遍历每一行时,我想从另一个表中获取另一个结果集(通过使用具有来自已处理行的值的 WHERE 子句形成一个 SELECT 语句)。我是PLSQL的新手。你能指导我如何做到这一点吗? (在循环游标的结果集时,我们可以在循环内定义一个游标吗)?
如果我不能说清楚,请原谅。
提前致谢
DECLARE
CURSOR receipts IS
SELECT CREATED_T, ACCT_NO, AMT FROM receipt_t
WHERE OBJ_TYPE='misc';
receipts_rec receipts%ROWTYPE;
BEGIN
-- Open the cursor for processing
IF NOT receipts%ISOPEN THEN
OPEN receipts;
END IF;
LOOP
FETCH receipts INTO receipts_rec;
EXIT WHEN receipts%NOTFOUND;
/* Loop through each of row and get the result set from another table */
newQuery := 'SELECT * FROM ageing_data WHERE ACCT_NO = ' || receipts_rec.ACCT_NO;
-- Execute the above query and get the result set, say RS
LOOP
-- For above result set-RS
END LOOP;
END LOOP;
CLOSE receipts;
END;
【问题讨论】:
-
基本上你的问题的答案是:是的,你可以嵌套游标。如果您发布示例代码,将更容易为您提供更实用的建议。
-
是的,你可以。以前也有人问过类似的问题。请查看:stackoverflow.com/questions/8481542/nested-cursor-in-a-cursor