0
点赞
收藏
分享

微信扫一扫

oracle游标

微言记 2022-02-16 阅读 113
-- 建表
create table KECHENG
(
    ID     NUMBER,
    NAME   VARCHAR2(20),
    COURSE VARCHAR2(20),
    SCORE  NUMBER
);

INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (1, '张三', '语文', 90);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (2, '张三', '数学', 80);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (3, '张三', '英语', 70);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (4, '张三', '历史', 60);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (5, '张三', '生物', 58);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (6, '张三', '物理', 50);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (7, '李四', '语文', 96);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (8, '李四', '数学', 93);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (9, '李四', '英语', 85);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (10, '李四', '历史', 43);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (11, '李四', '生物', 29);
INSERT INTO SCOTT.KECHENG (ID, NAME, COURSE, SCORE) VALUES (12, '李四', '物理', 69);

1.for循环游标

DECLARE
    CURSOR V_KECHENG IS SELECT * FROM KECHENG;
    C_ROW V_KECHENG%ROWTYPE;
BEGIN
    FOR C_ROW IN V_KECHENG LOOP
        DBMS_OUTPUT.PUT_LINE(C_ROW.ID||C_ROW.NAME||C_ROW.SCORE||C_ROW.COURSE);
        end loop;
end;

2.fetch游标

DECLARE
    CURSOR V_KECHENG IS SELECT * FROM KECHENG;
    C_ROW V_KECHENG%ROWTYPE;
BEGIN
    OPEN V_KECHENG;
    LOOP
        FETCH V_KECHENG INTO C_ROW;
        EXIT WHEN V_KECHENG%NOTFOUND;
                DBMS_OUTPUT.PUT_LINE(C_ROW.ID||C_ROW.NAME||C_ROW.SCORE||C_ROW.COURSE);
    end loop;
    CLOSE V_KECHENG;
end;

3.while循环游标

DECLARE
    CURSOR V_KECHENG IS SELECT *
                        FROM KECHENG;
    C_ROW V_KECHENG%ROWTYPE;
BEGIN
    OPEN V_KECHENG;
    FETCH V_KECHENG INTO C_ROW;
    WHILE V_KECHENG%FOUND
        LOOP
            DBMS_OUTPUT.PUT_LINE(C_ROW.ID || C_ROW.NAME || C_ROW.SCORE || C_ROW.COURSE);
            FETCH V_KECHENG INTO C_ROW;
        end loop;
    CLOSE V_KECHENG;
end;
举报

相关推荐

0 条评论