Oracle数据库游标管理.ppt

Oracle数据库游标管理.ppt

ID:52331995

大小:475.50 KB

页数:24页

时间:2020-04-04

Oracle数据库游标管理.ppt_第1页
Oracle数据库游标管理.ppt_第2页
Oracle数据库游标管理.ppt_第3页
Oracle数据库游标管理.ppt_第4页
Oracle数据库游标管理.ppt_第5页
资源描述:

《Oracle数据库游标管理.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、游标管理2回顾PL/SQL是一种可移植的高性能事务处理语言PL/SQL引擎驻留在Oracle服务器中PL/SQL块由声明部分、可执行部分和异常处理部分组成PL/SQL支持的数据类型包括标量数据类型、LOB数据类型和属性类型控制结构包括条件控制、循环控制和顺序控制PL/SQL支持动态SQL运行时出现的错误叫做异常异常可以分为预定义异常和用户定义的异常3目标掌握游标管理技巧4游标简介2-1Oracle服务器执行PL/SQL程序内存单元保存到游标中一次处理一行检索行提取行5游标简介2-2逐行处理查询结果,以编程的方式访问数据游标的类型:隐式游标REF游标显式游标在PL/SQL程序中执行DM

2、LSQL语句时自动创建隐式游标。显式游标用于处理返回多行的查询。REF游标用于处理运行时才能确定的动态SQL查询的结果游标类型6隐式游标4-1在PL/SQL中使用DML语句时自动创建隐式游标隐式游标自动声明、打开和关闭,其名为SQL通过检查隐式游标的属性可以获得最近执行的DML语句的信息隐式游标的属性有:%FOUND–SQL语句影响了一行或多行时为TRUE%NOTFOUND–SQL语句没有影响任何行时为TRUE%ROWCOUNT–SQL语句影响的行数%ISOPEN-游标是否打开,始终为FALSE7隐式游标4-2SQL>SETSERVEROUTPUTONSQL>BEGINUPDATEt

3、oysSETtoyprice=270WHEREtoyid='P005';IFSQL%FOUNDTHENDBMS_OUTPUT.PUT_LINE(‘表已更新');ENDIF;END;/只有在DML语句影响一行或多行时,才返回True8隐式游标4-3SQL>SETSERVEROUTPUTONSQL>DECLAREv_TOYIDTOYS.ID%type:='&TOYID';v_TOYNAMETOYS.NAME%Type:='&TOYNAME';BEGINUPDATETOYSSETNAME=v_TOYNAMEWHEREtoyid=v_TOYID;IFSQL%NOTFOUNDTHENDBMS_

4、OUTPUT.PUT_LINE('编号未找到。');ELSEDBMS_OUTPUT.PUT_LINE(‘表已更新');ENDIF;END;/如果DML语句不影响任何行,则返回True9隐式游标4-4SQL>SETSERVEROUTPUTONSQL>BEGINUPDATEvendor_masterSETvenname='RobMathew'WHEREvencode='V004';DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT);END;/返回DML语句影响的行数10SELECTINTO语句2-1SQL>SETSERVEROUTPUTONSQL>DECLAREempi

5、dVARCHAR2(10);desigVARCHAR2(10);BEGINempid:='&Employeeid';SELECTdesignationINTOdesigFROMemployeeWHEREempno=empid;EXCEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUTPUT.PUT_LINE('职员未找到');END;/如果没有与SELECTINTO语句中的条件匹配的行,将引发NO_DATA_FOUND异常11SELECTINTO语句2-2SQL>SETSERVEROUTPUTONSQL>DECLAREempidVARCHAR2(10);BEGINS

6、ELECTempnoINTOempidFROMemployee;EXCEPTIONWHENTOO_MANY_ROWSTHENDBMS_OUTPUT.PUT_LINE('该查询提取多行');END;/如果SELECTINTO语句返回多个值,将引发TOO_MANY_ROWS异常12显式游标2-1显式游标在PL/SQL块的声明部分定义查询,该查询可以返回多行显式游标的操作过程:数据库打开游标30George344Roger245James1Stud_mrksStud_namestud_no提取行变量关闭游标13显式游标2-2SQL>SETSERVEROUTPUTONSQL>DECLAREm

7、y_toy_pricetoys.toyprice%TYPE;CURSORtoy_curISSELECTtoypriceFROMtoysWHEREtoyprice<250;BEGINOPENtoy_cur;LOOPFETCHtoy_curINTOmy_toy_price;EXITWHENtoy_cur%NOTFOUND;DBMS_OUTPUT.PUT_LINE('TOYPRICE=:玩具单价=:'

8、

9、my_toy_price);ENDLOOP;CLOSEto

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

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

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