oracle游标使用大全33021

oracle游标使用大全33021

ID:14328265

大小:43.00 KB

页数:8页

时间:2018-07-27

oracle游标使用大全33021_第1页
oracle游标使用大全33021_第2页
oracle游标使用大全33021_第3页
oracle游标使用大全33021_第4页
oracle游标使用大全33021_第5页
资源描述:

《oracle游标使用大全33021》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Oracle游标使用大全www.net130.com    日期:2006-5-29    浏览次数:21058出处:赛迪网 显式游标 当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用selectinto语句。PL/SQL管理隐式游标,当查询开始时隐式游标打开,查询结束时隐式游标自动关闭。显式游标在PL/SQL块的声明部分声明,在执行部分或异常处理部分打开,取数据,关闭。使用游标 这里要做一个声明,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标。要在程序中使用游标,必须首先声明游标。声

2、明游标语法: CURSORcursor_nameISselect_statement;在PL/SQL中游标名是一个未声明变量,不能给游标名赋值或用于表达式中。例: DELCARE CURSORC_EMPISSELECTempno,ename,salary FROMemp WHEREsalary>2000  ORDERBYename; ........ BEGIN 在游标定义中SELECT语句中不一定非要表可以是视图,也可以从多个表或视图中选择的列,甚至可以使用*来选择所有的列。  打开游标使用游标中的值之前应该首先打开游标,打开游标初始化查询处

3、理。打开游标的语法是: OPENcursor_name   cursor_name是在声明部分定义的游标名。 例: OPENC_EMP;关闭游标语法: CLOSEcursor_name 例: CLOSEC_EMP;从游标提取数据 从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下: FETCHcursor_nameINTOvariable[,variable,...] 对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。 例: SETSERVERIUTPU

4、TON DECLARE v_enameEMP.ENAME%TYPE; v_salaryEMP.SALARY%TYPE; CURSORc_empISSELECTename,salaryFROMemp; BEGIN   OPENc_emp;     FETCHc_empINTOv_ename,v_salary;       DBMS_OUTPUT.PUT_LINE('SalaryofEmployee'

5、

6、v_ename

7、

8、'is'

9、

10、v_salary);     FETCHc_empINTOv_ename,v_salary;       DBMS_

11、OUTPUT.PUT_LINE('SalaryofEmployee'

12、

13、v_ename

14、

15、'is'

16、

17、v_salary);     FETCHc_empINTOv_ename,v_salary;       DBMS_OUTPUT.PUT_LINE('SalaryofEmployee'

18、

19、v_ename

20、

21、'is'

22、

23、v_salary);   CLOSEc_emp; END    这段代码无疑是非常麻烦的,如果有多行返回结果,可以使用循环并用游标属性为结束循环的条件,以这种方式提取数据,程序的可读性和简洁性都大为提高,下面我们使用循环重新写上面

24、的程序:SETSERVERIUTPUTONDECLAREv_enameEMP.ENAME%TYPE;v_salaryEMP.SALARY%TYPE;CURSORc_empISSELECTename,salaryFROMemp;BEGINOPENc_emp; LOOP   FETCHc_empINTOv_ename,v_salary;   EXITWHENc_emp%NOTFOUND;   DBMS_OUTPUT.PUT_LINE('SalaryofEmployee'

25、

26、v_ename

27、

28、'is'

29、

30、v_salary);END记录变量 定义一个记

31、录变量使用TYPE命令和%ROWTYPE,关于%ROWsTYPE的更多信息请参阅相关资料。 记录变量用于从游标中提取数据行,当游标选择很多列的时候,那么使用记录比为每列声明一个变量要方便得多。 当在表上使用%ROWTYPE并将从游标中取出的值放入记录中时,如果要选择表中所有列,那么在SELECT子句中使用*比将所有列名列出来要得多。 例:SETSERVERIUTPUTONDECLARER_empEMP%ROWTYPE;CURSORc_empISSELECT*FROMemp;BEGINOPENc_emp; LOOP FETCHc_empINTOr

32、_emp; EXITWHENc_emp%NOTFOUND; DBMS_OUT.PUT.PUT_LINE('SalaryofEmployee'

33、

34、r_e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。