ORACLE游标的创建与应用ppt课件_第1页
ORACLE游标的创建与应用ppt课件_第2页
ORACLE游标的创建与应用ppt课件_第3页
ORACLE游标的创建与应用ppt课件_第4页
ORACLE游标的创建与应用ppt课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7.1 游标的创建与应用,经1106 徐晓硕 学号20111189,1. 游标的概念,2. 显式游标,4.隐式游标,1.游标的概念,背景由来 当SELECT语句在PL/SQL程序块中使用时, 要求查询结果中只能包含一条记录, 若查询出来的数据多于一行,则执行出错。 这时候就需要用到游标。,1.游标的概念,Oracle游标的概念 游标是ORACLE系统在内存中开辟的一个工作区,在其中存放SELECT语句返回的查询结果。这个查询结果既可以是零记录,单条记录,也可以是多条记录.在游标所定义的工作区中,存在着一个指针(POINTER),在初始状态它指向查询结果的首记录.,1.游标的概念,Oracle游

2、标的类型 隐式游标: 是oracle为所有数据操纵语句(包括只返回单行数据的查询语句)自动声明和操作的一种游标(名字是sql)。显式游标: 用户显示声明的游标,即指定结果集。当查询返回结果超过一行时,就需要一个显式游标。,2.显式游标,显式游标的使用过程,1.定义游标 2.打开游标 3.提取游标 4.处理数据 5.关闭游标,1.定义游标,语法: CURSOR 游标名 IS SELECT语句; 例子: CURSOR c1 IS SELECT*FROM emp;,2.打开游标,语法: OPEN 游标名 ; 例子: OPEN c1 ;,3.提取数据,游标被打开后,使用FETCH语句获取游标正在指向的

3、结果集中的记录,语句执行后游标的指针自动下移,指向下一条记录。 每执行一次FETCH语句,游标只获取一行记录。,3.提取数据,语法: FETCH 游标名 INTO 变量名; 例子: FETCH c1 INTO emp_rec; 其中emp_rec是已定义好的和emp 结构相同的记录变量。,4.处理数据,上一步已经将游标指向的当期行记录通过FETCH语句提取出来并放到变量(emp_rec)中,接下来就可以对这些变量中的数据进行处理了。 例:将emp_rec中的数据输出 dbms_output.put_line(姓名是:|emp_rec.ename);,5.关闭游标,语法: CLOSE 游标名;

4、例子: CLOSE c1;,首先创建一个表,查看表中的信息,游标的声明与使用,游标的声明与使用,每执行一次FETCH语句,游标只获取一行记录,5次FETCH操作,游标的声明与使用,FETCH语句指向最后记录,将不再移动,6次FETCH操作,2.显式游标,游标的常用属性,1.%ISOPEN 属性 2.%FOUND 属性 3.%NOTFOUND属性 4.%ROWCOUNT属性,1.%ISOPEN属性,判断游标是否打开。打开返回值为TURE, 未打开返回值为FALSE。 语法: 游标名%ISOPEN; 例子: IF c1%ISOPEN THEN ;,2.%FOUND属性,判断游标是否从结果集中取到数

5、据。取到返回值为TURE, 未取到返回值为FALSE。 语法: 游标名%FOUND; 例子: IF c1%FOUND THEN ;,3.%NOTFOUND属性,与%FOUND相反。未取到数据返回值为TURE, 取到数据返回值为FALSE。 语法: 游标名%NOTFOUND; 例子: IF c1%NOTFOUND THEN ;,4.%ROWCOUNT属性,表示游标从查询结果集中已经获取到的记录总数。 语法: 游标名%ROWCOUNT; 例子: FETCH c1 INTO emp_rec; IF c1%ROWCOUNT10 THEN ;,2.显式游标,显式游标的循环,1.游标的LOOP循环 2.游

6、标的FOR 循环,1.游标的LOOP循环,语法: LOOP FETCH 游标名INTO 变量名; EXIT WHEN 游标名%NOTFOUND;ENDLOOP; LOOP循环中的FETCH语句重复执行,当FETCH语句不能从游标的当前行取出数据时,循环结束。,游标的声明与使用,2.游标的FOR循环 语法: FOR 变量名 IN 游标名 LOOP 数据处理语句; END LOOP;,2.游标的FOR循环 特点: FOR循环中循环控制变量不需要事先定义 FOR循环之前,系统能自动打开游标;循环结束后,系统自动关闭游标。 FOR循环过程中,自动执行FETCH语句。,3.带参数的游标,背景由来 在前面

7、介绍游标的例子中,SELECT语句都没有WHERE子句,或者用WHERE子句指定了一个固定的条件,这样每次都查询同样的数据。在更多的情况下,可能要根据实际情况查询不同的数据。要怎么办?,3.带参数的游标,背景由来 为了通过游标对数据进行更加灵活的处理,可以为游标定义参数,这些参数可以用在WHERE子句中。在打开游标时,指定实际的参数值,这样游标在每次打开时,可以根据不同的实际参数值,返回所需的不同数据。,3.带参数的游标,定义格式 语法: CURSOR 游标名(参数名 数据类型 DEFAULT 默认值) IS SELECT语句; 参数需要指明参数名及其数据类型。 参数只定义数据类型,没有大小。 可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。,4.隐式游标,背景由来 DML操作和单行SELECT语句会使用隐式游标(名字是sql),它们是: * 插入操作:INSERT。 * 更新操作:U

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论