orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc

orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc

ID:56873808

大小:39.50 KB

页数:14页

时间:2020-07-17

orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc_第1页
orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc_第2页
orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc_第3页
orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc_第4页
orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc_第5页
资源描述:

《orace中游标cursor的使用及定时器job用法(网上收集加整理的).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、游标的用法(游标是一种类似与迭代器的东西)给实际工资加100:createorreplaceprocedurepro_salryaddisbegindeclarev_salryneu_study.fact_salry%type;v_idneu_study.row_id%type;cursorc_salryisselectfact_salry,row_idfromneu_study;beginopenc_salry;loopfetchc_salryintov_salry,v_id;exitwhenc_salry%notfound;updateneu_studysetfact_salry=fa

2、ct_salry+100whererow_id=v_id;endloop;closec_salry;end;commit;endpro_salryadd;四个步骤:1.声明游标2.在执行部分使用游标,在用之前要打开游标3.用游标做提 取结果的动作4.工作完后要关闭游标(关闭以后就不能使用了,不能重复关闭)四个步骤的代码实现如下:DECLAREv_emps_emp%ROWTYPE;v_depts_emp.dept%TYPE;CURSORcur_empISSELECT*FROMs_empWHEREdept=v_dept;BEGINOPENcur_emp;FETCHcur_empINTOv_em

3、p;DBMS_OUTPUT.PUT_LINE(v_emp.id

4、

5、''

6、

7、v_emp.last_name);CLOSEcur_emp;--FETCHcur_empINTOv_emp;关闭游标后就不能再访问游标--CLOSEcur_emp;不能重复关闭游标END;游标一般跟循环语句配合使用,那就要知道游标的四个属性关于游标的四个属性%ROWCOUNT当前游标所处理的行数,例如cur_emp%ROWCOUNT(它是一个数,可以直 接使用)%ISOPEN判断此游标是否被打开cur_emp%ISOPENdeclarev_emps_emp%rowtype;cursorcur_empisselect*

8、froms_emp;beginopencur_emp;loopfetchcur_empintov_emp;exitwhencur_emp%notfound;dbms_output.put_line(v_emp.id

9、

10、''

11、

12、v_emp.first_name);ifcur_emp%isopenthendbms_output.put_line('true');elsedbms_output.put_line('false');endif;endloop;CLOSEcur_emp;end;%FOUND返回的是检查上一次FETCH语句的结果,如果上一次FETCH语句找到一条记录 ,那么FOUND

13、返回真,如果没有知道就返回假%NOTFOUND与%FOUND相反1)%FOUNDDECLAREv_emps_emp%ROWTYPE;CURSORcur_empISSELECT*FROMs_emp;BEGINOPENcur_emp;FETCHcur_empINTOv_emp;WHILEcur_emp%FOUNDLOOPDBMS_OUTPUT.PUT_LINE(v_emp.id

14、

15、''

16、

17、v_emp.first_name);DBMS_OUTPUT.PUT_LINE(cur_emp%ROWCOUNT);FETCHcur_empINTOv_emp;ENDLOOP;CLOSEcur_emp;END;

18、2)%NOTFOUNDDECLAREv_emps_emp%ROWTYPE;CURSORcur_empISSELECT*FROMs_emp;BEGINOPENcur_emp;LOOPFETCHcur_empINTOv_emp;EXITWHENcur_emp%NOTFOUND;DBMS_OUTPUT.PUT_LINE(v_emp.id

19、

20、' '

21、

22、v_emp.first_name);DBMS_OUTPUT.PUT_LINE(cur_emp%ROWCOUNT);ENDLOOP;CLOSEcur_emp;END;CURSOR与两种循环的配合使用1)与简单循环的配合使用如下:LOOPEXITWHEN

23、cur_emp%NOTFOUND;ENDLOOP;例如:DECLAREv_emps_emp%ROWTYPE;CURSORcur_empISSELECT*FROMs_emp;BEGINOPENcur_emp;LOOPFETCHcur_empINTOv_emp;EXITWHENcur_emp%NOTFOUND;DBMS_OUTPUT.PUT_LINE(v_emp.id

24、

25、' '

26、

27、v_emp.first_name);DBMS

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

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

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