- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目标 循环游标的应用 REF游标的应用 游标 逐行处理查询结果,以编程的方式访问数据 游标的类型: 循环游标 循环游标用于简化游标处理代码 当用户需要从游标中提取所有记录时使用 循环游标的语法如下: 循环游标 REF 游标和游标变量 REF 游标和游标变量用于处理运行时动态执行的 SQL 查询 创建游标变量需要两个步骤: 声明 REF 游标类型 声明 REF 游标类型的变量 用于声明 REF 游标类型的语法为: TYPE ref_cursor_name IS REF CURSOR [RETURN return_type]; REF 游标和游标变量 打开游标变量的语法如下: OPEN cursor_name FOR select_statement; REF 游标和游标变量 游标变量的优点和限制 游标变量的功能强大,可以简化数据处理。 游标变量的优点有: 可从不同的 SELECT 语句中提取结果集 可以作为过程的参数进行传递 可以引用游标的所有属性 可以进行赋值运算 使用游标变量的限制: 不能在程序包中声明游标变量 FOR UPDATE子句不能与游标变量一起使用 不能使用比较运算符 使用游标变量执行动态 SQL 可以使用游标变量执行动态构造的 SQL 语句 打开执行动态 SQL 的游标变量的语如下: OPEN cursor_name FOR dynamic_sqlstring [USING bind_argument_list]; Cursor与 Ref Cursor区别 从技术底层看,两者是相同的。普通plsql cursor在定义时是“静态”的。而Ref cursors可以动态打开。 Ref cursor根据逻辑动态打开;而游标cursor定义好了就无法修改了 ref cursor可以返回给客户端,cursor则不行。 cursor可以是全局的global ,ref cursor则必须定义在过程或函数中。 ref cursor可以在子程序间传递,cursor则不行。 cursor中定义的静态sql比ref cursor效率高,所以ref cursor通常 用在:向客户端返回结果集。 小结 循环游标的应用 REF的灵活运用 总结 游标用于处理查询结果集中的数据 游标类型有:隐式游标、显式游标和 REF 游标 隐式游标由 PL/SQL 自动定义、打开和关闭 显式游标用于处理返回多行的查询 显式游标可以删除和更新活动集中的行 要处理结果集中所有记录时,可使用循环游标 在声明 REF 游标时,不需要将 SELECT 语句与 其关联 本课程版权归北风网所有 欢迎访问我们的官方网站 讲师:文心 PL/SQL高级编程 北风网项目培训 游标的灵活运用 隐式游标 REF 游标 显式游标 在 PL/SQL 程序中执行DML SQL 语句时自动创建隐式游标。 显式游标用于处理返回多行的查询。 REF 游标用于处理运行时才能确定的动态 SQL 查询的结果 游标类型 FOR record_index IN cursor_name LOOP executable statements END LOOP; SQL SET SERVER OUTPUT ON SQL DECLARE CURSOR mytoy_cur IS SELECT toyid, toyname, toyprice FROM toys; BEGIN FOR toy_rec IN mytoy_cur LOOP DBMS_OUTPUT.PUT_LINE( ‘玩具编号:|| ||toy_rec.toyid|| ||‘玩具名称:|| ||toy_rec.toyname|| ||‘玩具单价:|| ||toy_rec.toyprice); END LOOP; END; TYPE my_curtype IS REF CURSOR RETURN stud_det%ROWTYPE; order_cur my_curtype; 声明强类型的 REF 游标 TYPE my_ctype IS REF CURSOR; stud_cur my_ctype; 声明弱类型的 REF 游标 SQL DECLARE TYPE toys_curtype IS REF CURSOR RETURN toys%ROWTYPE; toys_curvar toys_curty
文档评论(0)