Oracle游标

游标是一个指向返回数据集的指针,实际上是指Oracle服务器端内存中,也就是进程全局(PGA)中的一块上下午区域。也就是说游标实际上是指向SELECT 或DML语句执行后的一块内存的区域,而不是直接指向具体的数据。
每次记录被写到内存中后,游标就会打开,在这个内存区域中保存了如下的3类消息:
1、查询返回的数据行。
2、查询所处理的数据的行号。
3、指向共享池中已分析的SQL语句。
可以使用CURSOR语句定义一个游标,PL/SQL也会隐式地在执行任何DML语句或者SELECT INTO语句时创建隐式游标。使用游标的优势之一就是讲原本对数据集合的操作编程对结果集中的每一行进行处理。
使用如下:

DECLARE 
	ecprow buser%ROWTYPE;					--定义保存游标及所结果行的记录变量
	CURSOR buser_cur						--定义游标
	IS
		SELECT * FROM buser;				--查询语句
BEGIN
	OPEN buser_cur;							--打开游标
	LOOP									--循环检索游标
		FETCH buser_cur						--提取游标内容
		INTO ecprow;						--输出检索到的游标行的信息
		DBMS_OUTPUT.put_line('id:' || ecprow.id || ',name' || ecprow.name );		--输出
		EXIT WHEN buser_cur%NOTFOUND;		--跳出LOOP条件,游标检索完后退出
	END LOOP;
	CLOSE buser_cur;						--关闭游标
END;

执行结果
在这里插入图片描述
输出
在这里插入图片描述
游标可以处理一些很复杂的数据,进行高端的操作。这里的减少很少。以后有机会补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值