cakin24 阅读(54) 评论(0)

一 定义

光标,也叫游标,就是一个结果集(Result Set)。
 
二 语法
CURSOR 光标名 [(参数名 数据类型[,参数名 数据类型]...)]
IS SELECT 语句;
 
三 光标用法
1、定义光标
cursor c1 is select ename from emp;
2、打开光标执行查询
open c1;
3、取一行到变量
fetch c1 into pename;


 
4、关闭关闭释放资源
close c1;
 
四 实例
1、需求
使用光标查询员工姓名和工资,并打印。
2、代码
  1. --查询并打印员工的姓名和薪水
  2. /*
  3. 1.光标属性
  4. %found %notfound
  5. */
  6. set serveroutput on
  7. declare
  8. --定义一个光标
  9. cursor cemp isselect ename,sal from emp;
  10. --为光标定义对应的变量
  11. pename emp.ename%type;
  12. psal emp.sal%type;
  13. begin
  14. --打开光标
  15. open cemp;
  16. loop
  17. --取一条记录
  18. fetch cemp into pename,psal;
  19. --思考:1循环什么时候退出?2fetch不一定能取到记录
  20. --exitwhen没有取到记录
  21. exitwhen cemp%notfound;
  22. dbms_output.put_line(pename||'的薪水是'||psal);
  23. end loop;
  24. --关闭光标
  25. close cemp;
  26. end;
  27. /
3、运行结果
SMITH的薪水是800
ALLEN的薪水是1600
WARD的薪水是1250
JONES的薪水是2975
MARTIN的薪水是1250
BLAKE的薪水是2850
CLARK的薪水是2450
SCOTT的薪水是3000
KING的薪水是5000
TURNER的薪水是1500
ADAMS的薪水是1100
JAMES的薪水是950
FORD的薪水是3000
MILLER的薪水是1300
 
PL/SQL 过程已成功完成。