Oracle存储过程使用游标进行遍历

  记录存储过程使用游标进行遍历

 

1、初始化表等数据,用于测试使用游标遍历的存储过程

CREATE TABLE TEST(ID NUMBER PRIMARY KEY , NAME VARCHAR(64));
INSERT INTO TEST VALUES(1,'CHEN');
INSERT INTO TEST VALUES(2,'LYLY');

2、游标遍历的存储过程sql

复制代码
CREATE OR REPLACE PROCEDURE TEST_CURSOR(I_ID IN NUMBER) IS 
    CURSOR C_TEST IS SELECT ID,NAME FROM TEST T WHERE  T.ID = I_ID ;  --声明显式游标  
    C_T C_TEST%ROWTYPE;  --定义游标变量,该变量的类型为基于游标C_TEST的记录  
    BEGIN  
DBMS_OUTPUT.ENABLE(BUFFER_SIZE=>NULL); --FOR 循环 FOR C_T IN C_TEST LOOP DBMS_OUTPUT.PUT_LINE('FOR: '||C_T.ID ||'-'|| C_T.NAME); END LOOP; --WHILE 循环 OPEN C_TEST; --必须要明确的打开游标 FETCH C_TEST INTO C_T; WHILE C_TEST%FOUND LOOP DBMS_OUTPUT.PUT_LINE('WHILE: '||C_T.ID|| '-' || C_T.NAME); FETCH C_TEST INTO C_T; END LOOP; CLOSE C_TEST; --必须要明确的关闭游标 --FETCH 循环 OPEN C_TEST; --必须要明确的打开游标 LOOP FETCH C_TEST INTO C_T; EXIT WHEN C_TEST%NOTFOUND; DBMS_OUTPUT.PUT_LINE('FETCH: '||C_T.ID|| '' || C_T.NAME); END LOOP; CLOSE C_TEST; --必须要明确的关闭游标 END;
复制代码

3、执行游标遍历的存储过程

 

posted @   harara  阅读(1249)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示

目录导航