当在PL/SQL块中执行查询语句(select)和数据操纵语句(DML)时,Oracle会为其分配上下文区,游标是指向上下文区的指针。
显示游标使用示例
- 显式游标中使用FETCH...INTO语句
- --在PL/SQL块中显示部门10的所有雇员名及其工资
- DECLARE
- CURSOR emp_cursor IS
- SELECT ename,sal FROM emp WHERE deptno=10;
- v_ename emp.ename%TYPE;
- v_sal emp.sal%TYPE;
- BEGIN
- OPEN emp_cursor;
- LOOP
- FETCH emp_cursor INTO v_ename,v_sal;
- EXIT WHEN emp_cursor%NOTFOUND;
- dbms_output.put_line(v_ename||': '||v_sal);
- END LOOP;
- CLOSE emp_cursor;
- END;
- --在Oracle9i之前,使用FETCH...INTO语句每次只能处理一行数据。
运行结果:
- zhangsan: 800
- CLARK: 2450
- KING: 5000
- MILLER: 1300
2.在显式游标中,使用FETCH...BULK COLLECT INTO语句提取所有数据
- DECLARE
- CURSOR emp_cursor IS
- SELECT ename FROM emp WHERE deptno=10;
- TYPE ename_table_type IS TABLE OF VARCHAR2(10);
- ename_table ename_table_type;
- BEGIN
- OPEN emp_cursor;
- FETCH emp_cursor BULK COLLECT INTO ename_table;
- FOR i IN 1.. ename_table.COUNT LOOP
- dbms_output.put_line(ename_table(i));
- END LOOP;
- CLOSE emp_cursor;
- END;
- 在显式游标中使用FETCH...BULK COLLECT INTO ...LIMIT语句提取部分数据
- 使用游标属性
- 基于游标定义记录变量
阅读(1467) | 评论(0) | 转发(0) |