oracle游标的使用详解_oracle游标失效 大家好,又见面了,我是你们的朋友全栈君。 1、游标的概念 游标(CURSOR):游标是把从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作。 2、游标的作用 游标是用来处理使用SELECT语句从数据库中检索到的多行记录的工具。借助于游标的功能,数据库应用程序可以对一组记录逐条进行处理,每次处理一行。 3、游标的类型 显式游标(Explicit Cursor):显式游标需要定义声明,在使用前要打开和,使用完毕后要关闭。多用于返回多行的SELECT语句隐式游标(Implicit Cursor):在执行一个SQL语句时,服务器将自动创建一个隐式游标,该游标是内存中的工作区,存储了执行SQL语句的结果,可通过游标的属性获得SQL的执行结果及状态信息。多用于只返回一行的SQL语句 4、隐式游标 (ORACLE在创建隐式游标时,默认的游标名为SQL) 1)游标的主要属性(显示游标、隐式游标)%FOUND 布尔型属性,当SQL语句至少影响一行时为TRUE,否则为FALSE%NOTFOUND 布尔型属性,当SQL语句没有影响的行时为TRUE,否则为FALSE%ISOPEN 布尔型属性,当游标已打开时返回TRUE,否则为FALSE(对用户而言,隐式游标永远是false)%ROWCOUNT 数 字型属性,返回受到SQL影响的行数 注意: 属性名与游标名之间没有空格。 游标的属性只能在PL/SQL块中使用,而不能在SQL语句中使用 例1 将PRODUCTS表中类型为1的所有产品的单价打9折,并显示该更新所影响的行数.代码语言:javascript复制 5.显式游标
oracle游标的使用详解_oracle游标失效 1)定义游标 在使用显示游标之前,必须先在声明部分定义游标,其定义语法如下: CURSOR cursor_name[(parameter,…)] IS select_statement; 说明: 参数parameter形式如下:para_name [IN] data_type [:=|DEFAULT value] (2)打开游标 当打开游标时,ORACLE会执行游标所对应的SELECT语句,并将结果存放到结果集,其定义语法如下: OPEN cursor_name[(parameter,…)]; (3)提取数据语法如下: FETCH cursor_name INTO variable[,…]; 说明:对游标第一次执行FETCH语句时,它将工作区中的第一条记录赋给赋给变量,并使工作区内的指针指向下一条记录。工作区中的游标指针只能向下移动,不能回退。在使用FETCH语句之前,必须先打开游标,才能保证工作区内有数据。INTO子句中的变量,顺序、类型必须与工作区中每行记录的字段数、顺序以及数据类型一一对应 (4)关闭游标 关闭游标可释放其结果集,语法如下: CLOSE cursor_name;说明:关闭游标,就是使游标所对应的内存工作区变为无效,并释放与游标相关的系统资源显式游标——无参游标 例2:用显式游标显示输出products表中供应商编号为6 的产品的信息。代码语言:javascript复制 显式游标——参数游标 例3:用显式参数游标显示输出products表中供应商编号为XX 的产品的信息。代码语言:javascript复制 注意:在为参数游标定义参数的数据类型时,不能使用长度约束显式游标——游标FOR循环 语法格式: FOR 循环变量 IN 游标类型名 LOOP 循环语句 END LOOP; 注意:循环变量不需要定义,系统隐含地定义其数据类型为%ROWTYPE的变量使用游标FOR循环时,不能使用OPEN、FETCH、CLOSE语句。 例4:用显式参数游标显示输出products表中供应商编号为XX 的产品的信息。代码语言:javascript复制 6.显示游标与隐式游标比较
oracle游标的使用详解_oracle游标失效 7.游标变量 游标包括显示游标和隐式游标,在定义时与特定的查询绑定,即在声明中定义查询,其结构是不变的,因此又称静态变量。 游标变量是一个指向多行查询结果集的指针,不与特定的查询绑定,可以在打开游标变量时定义查询,可以返回不同结构的结果集。 在PL/SQL 中,使用游标变量包括定定义游标引用类型(REF CURSOR),声明游标变量,打开游标变量、检索游标变量、关闭游标变量等几个基本步骤。 游标变量基本步骤: (1) 定义游标CURSOR类型的指针TYPE type_name IS REF CURSOR [RETURN return_type]; type_name 是新引用类型的名字 而return_type表示该游标变量返回的记录类型。 (2) 声明REF CURSOR类型的变量 游标变量 type_name; (3) 打开游标变量的语法格式如下所示: OPEN 游标变量名 FOR SELECT 语句; (4) 检索游标变量 检索游标变量的方法与检索静态游标相似,使用 FETCH…. INTO 语句循环检索游标变量的 结果集中的记录。语法为:代码语言:javascript复制 (5)关闭游标变量 检索并处理完游标变量所对应的结果集后,可以关闭游标变量,释放存储空间。语法为; close 游标变量名; 游标变量的不同定义方式举例代码语言:javascript复制 例5:使用游标变量查询出产品表中类别为1的产品的信息,并输出产品名称、类别编号、单价。代码语言:javascript复制 代码语言:javascript复制 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/210148.html原文链接:https://javaforall.cn
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/58772.html