1.
-- 定义游标
CURSOR c_Student IS
SELECT ID, FIRST_NAME, LAST_NAME, MAJOR FROM T_TEST_STUDENTS;
-- 遍历游标
OPEN c_Student;
LOOP
FETCH c_Student
INTO v_NewId, v_NewFirstName, v_NewLastName, v_NewMajor;
EXIT WHEN c_Student%NOTFOUND;
INSERT INTO T_TEST_STUDENTS
(ID, FIRST_NAME, LAST_NAME, MAJOR)
VALUES
(v_NewId, v_NewFirstName, v_NewLastName, v_NewMajor);
END LOOP;
CLOSE c_Student;
COMMIT;
2.
-- 定义游标
CURSOR c_Student IS
SELECT ID, FIRST_NAME, LAST_NAME, MAJOR FROM T_TEST_STUDENTS;
-- 遍历游标
FETCH c_Student INTO v_NewId, v_NewFirstName, v_NewLastName, v_NewMajor;
WHILE c_Student%FOUND LOOP
INSERT INTO T_TEST_STUDENTS
(ID, FIRST_NAME, LAST_NAME, MAJOR)
VALUES
(v_NewId, v_NewFirstName, v_NewLastName, v_NewMajor);
FETCH c_Student INTO v_NewId, v_NewFirstName, v_NewLastName, v_NewMajor;
END LOOP;
CLOSE c_Student;
COMMIT;
3.
CURSOR c_Student IS
SELECT ID, FIRST_NAME, LAST_NAME, MAJOR FROM T_TEST_STUDENTS;
FOR v_Student in c_Student LOOP
INSERT INTO T_TEST_STUDENTS
(ID, FIRST_NAME, LAST_NAME, MAJOR)
VALUES
(v_Student.ID, v_Student.FIRST_NAME, v_Student.LAST_NAME, v_Student.MAJOR);
END LOOP;
COMMIT;
4.
/* 不需要定义游标
CURSOR c_Student IS
SELECT ID, FIRST_NAME, LAST_NAME, MAJOR FROM T_TEST_STUDENTS;
*/
FOR v_Student in (SELECT ID, FIRST_NAME, LAST_NAME, MAJOR FROM T_TEST_STUDENTS) LOOP
INSERT INTO T_TEST_STUDENTS
(ID, FIRST_NAME, LAST_NAME, MAJOR)
VALUES
(v_Student.ID, v_Student.FIRST_NAME, v_Student.LAST_NAME, v_Student.MAJOR);
END LOOP;
COMMIT;