光标(Cursor)==ResultSet
光标语法:
CURSOR 光标名[(参数名 数据类型[,参数名 数据类型]...)]
IS SELECT 语句;
用于存储一个查询返回的多行数据
例如:
cursor c1 is select ename from emp;
打开光标: open c1;(打开光标执行查询)
取一行光标的值: fetch c1 into pjob;(取一行到变量中)
关闭光标:close c1;(关闭游标释放资源)
pjob必须与emp表中的job列类型一致:
定义:pjob emp.empjob%type;
光标的属性:notfound isopen
oracle默认允许打开的光标数是300个。
命令查看: show parameter cursor;
举例:
-- set serveroutput on declare -- cursor cemp is select ename,sal from emp; pename emp.ename%type; psal emp.sal%type; begin --open open cemp LOOP fetch cemp into pename,psal; -- exit when cemp%notfound; -- dbms_output.put_line(pename || psal); END LOOP; close cemp; end; /