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 @ 2022-06-06 16:08  harara  阅读(1282)  评论(0)    收藏  举报