游标遍历的几种方式
2012-06-15 09:18
155 查看
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;
-- 定义游标
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;
相关文章推荐
- 遍历游标的几种方式
- 游标遍历的几种方式
- 遍历Map的几种方式
- java集合遍历的几种方式总结及详细比较
- Hashtable 数据遍历的几种方式
- Java种遍历Map集合的几种常用方式
- 二叉树几种遍历方式
- ArrayList和LinkedList的几种循环遍历方式及性能对比分析
- std::vector的几种遍历方式比较
- Java HashMap遍历几种方式
- php中遍历二维数组的几种方式
- Map遍历几种方式
- 【Java】Map集合的几种遍历方式
- java中遍历map的几种方式
- Java 遍历文件夹的几种方式及简单性能对比
- map的几种遍历方式
- 遍历map几种方式及应用
- 二叉树的几种遍历方式浅析:递归遍历/堆栈遍历/层序遍历/Morris遍历
- List<Map>的几种遍历方式
- JS几种数组遍历方式以及性能分析对比