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;