1.情景展示
Oracle 遍历游标的三种方式(for、fetch、while)
2.问题分析
我们可以把游标想象成一张表,想要遍历游标,就要取到游标的每行数据,所以问题的关键就成了:如何取到行数据?
3.解决方案
方式一:FOR 循环(推荐使用)
/* 如果是在存储过程外使用显示游标,需要使用DECLARE关键字 */
DECLARE
/*创建游标*/
CURSOR CUR_FIRST_INDEX IS
SELECT A.ID A_ID, --一级指标ID
A.INDEXNAME A_INDEXNAME --一级指标名称
FROM INDEX_A A
ORDER BY A_ID;
/*定义游标变量,该变量的类型为基于游标CUR_FIRST_INDEX的行记录*/
ROW_CUR_FIRST_INDEX CUR_FIRST_INDEX%ROWTYPE;
/*游标处理*/
BEGIN
/*遍历游标*/
--FOR 循环
FOR ROW_CUR_FIRST_INDEX IN CUR_FIRST_INDEX LOOP
--循环体
DBMS_OUTPUT.PUT_LINE(‘{"ID":"‘ || ROW_CUR_FIRST_INDEX.A_ID || ‘","名称":"‘ || ROW_CUR_FIRST_INDEX.A_INDEXNAME || ‘"}‘);
END LOOP;
END;
执行,输出结果