声明和打开游标+游标+声明游标+打开游标

声明和打开游标
游标
1游标是指把从数据库查询出来的数据以临时表的形式存放在内存中。
2游标可以对存储在内存的数据进行操作,返回一条或一组记录或者不返回记录。
3PL/SQL的纪录和表类型虽然也可以存储数据,但对一组存储在内存的数据进行操作,没有游标方面
4游标的操作:声明游标,打开游标,提前游标,关闭游标。
5游标类似指针,一次可以处理其中一行
6游标分类
1)显示游标:专门处理select语句返回的多行数据
2)隐示游标:用于处理select into 和DML语句,oracle会自动创建声明隐式游标来处理结果数据。

这里写图片描述

原因:rowtype是存一行数据,而我返回太多行了

修正后
这里写图片描述

声明游标
1声明游标,主要是定义一个游标名称来对应一个查询语句,从而可以使用该游标对查询语句返回的结果集进行单行操作。
语法
cursor cursorName
【(parameterName【in】 data_type 【{:=| default }value】 【,…..】)】
is
select_statement
【for update 【of column【,……】】【nowait】】;

cursorName:游标名称

parameterName【in】 :为游标定义输入参数,in关键字可以省略,用户需要在打开游标时为输入参数赋值,输入参数可以多个,使用逗号(,)分隔开。
data_type :为输入参数指定数据类型,但是不能指定精度或者长度,如可以使用varchar2,但是不能使用varchar2(10)

select_statement:查询语句

for update:用于使用游标的数据时,锁定游标的结果集与表中对应数据行的所有或部分列.
of:如果不使用of字句,表示锁定游标结果集与表中对应数据行的所有列,如果指定of字句,则只锁定指定的列.
nowait:如果表的数据行被用户锁定,那么其他用户的for update操作将会一直等到该用户释放这些数据行的锁定后才会执行。如果使用nowait关键字,则其他用户在使用open打开游标是会立即返回错误信息.

举例
declare
cursor stu_cursor(num number:=1)
is
select sage,sname from student where rownum=num;

打开游标
1声明游标时为游标指定了查询语句,但是该语句不会被立即执行,只有打开游标后,oracle才会执行这些查询语句
2打开游标时,如游标有输入参数,用户必须被这些参数赋值,否则会报错

语法
open cursorName【(value【,….】)】;

举例
open stu_cursor(2);

转载于:https://www.cnblogs.com/feiZhou/p/9344387.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值