ImageVerifierCode 换一换
你正在下载:

游标.ppt

[预览]
格式:PPT , 页数:22 ,大小:1.09MB ,
资源ID:5698413      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5698413.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(游标.ppt)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

游标.ppt

1、浅谈数据库游标,回顾,CREATE OR REPLACE PROCEDUREpro_Name(参数列表) AS BEGINEXCEPTION WHEN OTHERSTHEN dbms_output.put_line(Sqlerrm);END;,2,目标,掌握游标管理技巧,3,SELECT INTO 语句 2-1,4,SQL SET SERVEROUTPUT ON SQL DECLARE empid VARCHAR2(10);desig VARCHAR2(10);BEGINempid:= /,如果没有与SELECT INTO语句中的条件匹配的行,将引发NO_DATA_FOUND异常,SELECT

2、 INTO 语句 2-2,5,SQL SET SERVEROUTPUT ON SQL DECLARE empid VARCHAR2(10);BEGINSELECT empno INTO empid FROM employee;EXCEPTIONWHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE(该查询提取多行);END;/,如果 SELECT INTO 语句返回多个值, 将引发TOO_MANY_ROWS异常,显式游标 2-1,显式游标在 PL/SQL 块的声明部分定义查询,该查询可以返回多行 显式游标的操作过程:,6,数据库,打开游标,提取行,变量,关闭游标

3、,游标简介 2-1,7,执行 PL/SQL 程序,内存单元,保存到游标中,一次处理一行,检索行,提取行,游标简介 2-2,逐行处理查询结果,以编程的方式访问数据 游标的类型:,8,隐式游标,REF 游标,显式游标,在 PL/SQL 程序中执行DML SQL 语句时自动创建隐式游标。,显式游标用于处理返回多行的查询。,REF 游标用于处理运行时才能确定的动态 SQL 查询的结果,游标类型,显式游标 2-2,9,SQLSET SERVER OUTPUT ON SQLDECLAREmy_toy_price toys.toyprice%TYPE; CURSOR toy_cur ISSELECT toy

4、price FROM toysWHERE toyprice250;BEGINOPEN toy_cur; LOOPFETCH toy_cur INTO my_toy_price;EXIT WHEN toy_cur%NOTFOUND;DBMS_OUTPUT.PUT_LINE (TOYPRICE=:玩具单价=:|my_toy_price);END LOOP;CLOSE toy_cur;END;,声明游标,打开游标,提取行,关闭游标,带参数的显式游标,声明显式游标时可以带参数以提高灵活性 声明带参数的显式游标的语法如下:CURSOR ( )IS select_statement;,10,SQL SET

5、 SERVEROUTPUT ON SQL DECLAREdesig VARCHAR2(20);emp_code VARCHAR2(5);empnm VARCHAR2(20);CURSOR emp_cur(desigparam VARCHAR2) ISSELECT empno, ename FROM employeeWHERE designation=desigparam;BEGINdesig:= ,循环游标 2-1,循环游标用于简化游标处理代码 当用户需要从游标中提取所有记录时使用 循环游标的语法如下:,11,FOR IN LOOPEND LOOP;,循环游标 2-2,12,SQL SET S

6、ERVER OUTPUT ON SQL DECLARE CURSOR mytoy_cur ISSELECT toyid, toyname, toypriceFROM toys;BEGINFOR toy_rec IN mytoy_curLOOPDBMS_OUTPUT.PUT_LINE(玩具编号:| |toy_rec.toyid| |玩具名称:| |toy_rec.toyname| |玩具单价:| |toy_rec.toyprice);END LOOP;END;,REF 游标和游标变量 3-1,REF 游标和游标变量用于处理运行时动态执行的 SQL 查询 创建游标变量需要两个步骤: 声明 REF

7、游标类型 声明 REF 游标类型的变量 用于声明 REF 游标类型的语法为:TYPE IS REF CURSORRETURN ;,13,REF 游标和游标变量 3-2,打开游标变量的语法如下:OPEN cursor_name FOR select_statement;,14,TYPE my_curtype IS REF CURSORRETURN stud_det%ROWTYPE; order_cur my_curtype;,声明强类型的 REF 游标,TYPE my_ctype IS REF CURSOR; stud_cur my_ctype;,声明弱类型的 REF 游标,REF 游标和游标变

8、量 3-3,15,SQL DECLARE TYPE toys_curtype IS REF CURSORRETURN toys%ROWTYPE;toys_curvar toys_curtype;toys_rec toys%ROWTYPE;BEGINOPEN toys_curvar FORSELECT * FROM toys;FETCH toys_curvar INTO toys_rec;.CLOSE toys_curvar;END;,声明REF游标类型,声明游标变量,游标变量的优点,游标变量的功能强大,可以简化数据处理。 游标变量的优点有: 可从不同的 SELECT 语句中提取结果集 可以作为

9、过程的参数进行传递 可以引用游标的所有属性,16,使用游标变量执行动态 SQL,可以使用游标变量执行动态构造的 SQL 语句 打开执行动态 SQL 的游标变量的语如下:OPEN cursor_name FOR dynamic_sqlstringUSING bind_argument_list;,17,DECLAREr_emp emp%ROWTYPE;TYPE c_type IS REF CURSOR;cur c_type;p_salary NUMBER; BEGINp_salary := 2500;OPEN cur FOR select * from emp where sal:1order

10、by sal descUSING p_salary;DBMS_OUTPUT.PUT_LINE(薪水大于| p_salary |的员工有:);LOOPFETCH cur INTO r_emp;EXIT WHEN cur%NOTFOUND;DBMS_OUTPUT.PUT_LINE(编号:| r_emp.empno| 姓名: | r_emp.ename| 薪水: | r_emp.sal );END LOOP;CLOSE cur; END;,隐式游标 4-1,在PL/SQL中使用DML语句时自动创建隐式游标 隐式游标自动声明、打开和关闭,其名为 SQL 通过检查隐式游标的属性可以获得最近执行的DML

11、语句的信息 隐式游标的属性有: %FOUND SQL 语句影响了一行或多行时为 TRUE %NOTFOUND SQL 语句没有影响任何行时为TRUE %ROWCOUNT SQL 语句影响的行数 %ISOPEN - 游标是否打开,始终为FALSE,18,隐式游标 4-2,19,SQL SET SERVEROUTPUT ON SQL BEGINUPDATE toys SET toyprice=270WHERE toyid= P005;IF SQL%FOUND THENDBMS_OUTPUT.PUT_LINE(表已更新);END IF;END;/,只有在 DML 语句影响一行 或多行时,才返回 Tr

12、ue,隐式游标 4-3,20,SQL SET SERVEROUTPUT ON SQL DECLAREv_TOYID TOYS.ID%type := /,如果 DML 语句不影响任何行,则返回 True,隐式游标 4-4,21,SQL SET SERVEROUTPUT ON SQL BEGINUPDATE vendor_masterSET venname= Rob MathewWHERE vencode=V004;DBMS_OUTPUT.PUT_LINE (SQL%ROWCOUNT);END;/,返回 DML 语句影响的行数,总结,游标用于处理查询结果集中的数据 游标类型有:隐式游标、显式游标和 REF 游标 隐式游标由 PL/SQL 自动定义、打开和关闭 显式游标用于处理返回多行的查询 要处理结果集中所有记录时,可使用循环游标 在声明 REF 游标时,不需要将 SELECT 语句与 其关联,22,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报