资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,游标概述,分类,隐式游标:查询单行记录,显式游标:查询多行记录,回顾:什么是游标,隐式游标概念,什么是隐式游标,Oracle自动在后台使用的游标,用户不参与任何操作,所以对用户是“透明”(隐藏)的。,特征,不能手动打开、提取、关闭,使用SELECT.INTO.语句时,Oracle会自动创建、打开、取值(Fetch)、Close。,使用,通过检查隐式游标属性,可以获取最近执行的select单行语句或者其它DML语句信息。,显式游标概念,为什么要用显式游标,在PL/SQL如何返回多行记录并逐行进行处理。,思考:为什么不能直接用SELECT?,显式游标,手工定义并使用的游标叫显式游标。,简要语法,cursor 游标名 is,select 语句,显式游标使用(背,面试),显式游标使用步骤,定义游标名称和SELECT语句,通过OPEN语句打开游标,通过FETCH语句获取游标数据,如果有多行,则在循环语句中使用FETCH语句,关闭游标,类似:JAVA的ResultSet对象,隐式游标示例,案例一:%TYPE,查询scott的姓名并输出,特点:查询一个值,案例二:%ROWTYPE,查询scott的所有信息并输出,特点:查询一行值,案例三:常见异常处理,根据员工工资查询并输出姓名,特点:可能无数据(返回0行)或者数据太多(返回多行),使用显式游标修改数据,语法,在一个表中修改:,在多个表中修改:,案例,加工资,经理加3K,员工加1.5K。,cursor 游标名 is,select 语句 for update,cursor 游标名 is,select 语句 for update of 列名,显式游标更新数据,游标FOR循环,案例一,打印所有员工的部门名称和员工姓名。,说明:使用两种方式。,案例二,加工资,经理加3K,员工加1.5K。,步骤:通过FOR循环改写。,游标FOR循环更新数据,游标FOR循环打印员工信息,BULK COLLECT,为什么要使用BULK COLLECT?,提交PL/SQL中SELECT语句的查询效率。,原理:减少了PL/SQL与SQL引擎之间的开关次数,因而加速了数据获取的速度。,语法,演示,案例:使用SELECT.into输出所有员工姓名。,.BULK COLLECT into 集合,BULK COLLECT打印员工姓名,游标变量和REF CURSOR,为什么要使用游标变量,游标变量提供将PL/SQL块中的多行数据传递到外部程序的一种方法。,本质就是传递数据所在的内存地址。,游标变量,游标就是指向PL/SQL结果集的工作区名称,而游标变量就是对这个工作区的引用。,或:游标变量是一种数据类型,里面保存的值就是各个具体的游标(所对应的内存地址)。,说明,我们将在学习存储过程中使用游标变量如何返回数据。,小结,游标概念,游标分类,隐式游标概念及使用,显式游标概念及使用,游标FOR循环,游标变量概念及作用,
展开阅读全文