plsql(2)--游标

游标

  Plsql中执行selectinsertupdatedelete语句时,oracle会在内存中为其分配上下文区(context area),即一个缓冲区。游标是指该区的一个指针,或是命名一个工作区,或是一种结构化的数据类型。为应用程序提供了一种对具有多行数据查询结果的每一行数据分别进行单独处理的方法。

 声明游标

cursor 游标名 is select查询语句; //把游标名与查询语句关联在一起

为查询打开游标

open 游标名; //如果select语句后面有for update的话,在打开游标时给当前cursor加上锁

将结果提取出来,存入PLSQL变量中

fetch 游标名 into 变量名;

while 游标名%found //结束条件

关闭游标

close 游标名;

关于游标的几个属性:

%found 返回boolean,当fetch语句还能够从游标中提取数据就返回true

%notfound 与上相反之

%isopen 判断游标是否处于打开状态

%rowcount 返回当前游标的指针的位移量(偏向第一条记录的位移量)

%found          %notfound

上一次fetch提取到了数据            true             false

上一次fetch没提取到了数据          false            true

没有执行fetch                      false            false

利用游标去查询emp_xb表中的所有的数据

*************************

第一种实方式:while循环

declare

cursor emp_cur is select * from emp_xb;

xu emp_xb%rowtype;

begin

open emp_cur;

fetch emp_cur into xu;

while emp_cur%found

loop

dbms_output.put_line(' id------------>' || xu.id );

dbms_output.put_line(' name---------->' || xu.name );

dbms_output.put_line(' lastname ----->' || xu.lastname );

fetch emp_cur into xu;

end loop;

close emp_cur;

end;

第二种实方式:loop循环

declare

cursor emp_cur is select * from emp_xb;

xu emp_xb%rowtype;

begin

open emp_cur;

loop

if emp_cur%notfound then exit;

end if;

dbms_output.put_line(' id------------>' || xu.id );

dbms_output.put_line(' name---------->' || xu.name );

dbms_output.put_line(' lastname ----->' || xu.lastname );

fetch emp_cur into xu;

end loop;

close emp_cur;

end;

第三种实方式:利用FOR语句使用COUSOR指针

declare

cursor cur_xb is select * from emp_xb;

begin

for emp in cur_xb loop

dbms_output.put_line('id===>' || emp.id);

dbms_output.put_line('firstname===>' || emp.name);

dbms_output.put_line('lastname===>' || emp.lastname);

end loop;

end;

注意:不声明游标的话,可直接把查询语句写在for循环的in后面,系统会帮你把open Cursor和fetch和close cursor全部都做了

游标带参数:

参数声明在游标声明的名字之后写在括号内,多个用逗号隔开,这时打开游标就需要传参

declare

cursor cur_xb(myname varchar2) is select * from emp_xb where name=myname;

begin

for emp in cur_xb('xu') loop

dbms_output.put_line('id===>' || emp.id);

end loop;

for emp in cur_xb('xiao') loop

dbms_output.put_line('firstname===>' || emp.firstname);

end loop;

end;

### 荣耀 MagicBook Pro 配置与性能 #### 处理器与图形处理能力 荣耀 MagicBook Pro 提供了强大的计算能力和出色的图形处理表现。其搭载英特尔 i5 或 i7 处理器,能够满足日常办公、游戏娱乐以及视频编辑等多种需求[^4]。此外,在显卡方面,虽然未提及独立显卡型号,但从整体性能来看,该设备足以应对主流的游戏和图像处理任务。 #### 存储与内存 在存储方案上,标准版本配备 512GB 的 PCIe 固态硬盘,提供高速的数据读写速度,适合大多数用户的文件管理和软件安装需求。然而,对于需要更大容量存储空间的用户而言,可以通过自行更换硬盘来扩展至更高规格,例如升级到 1TB SSD 是可行的选择[^3]。与此同时,机器内置 8GB 双通道 DDR4 内存,默认频率为 2400MHz,确保多任务运行流畅无阻。 #### 屏幕显示效果 作为一款主打全面屏概念的产品,荣耀 MagicBook Pro 搭载了一块 16.1 英寸的大尺寸显示屏,具备较高的分辨率和支持广视角技术,带来沉浸式的视觉享受。这种设计不仅提升了观看体验,还使得长时间工作下的眼睛疲劳感有所缓解。 #### 特色功能——Magic-link 2.0 值得一提的是,新款机型引入了增强型互联解决方案即 Magic-link 2.0 魔法互传特性。这项创新允许用户轻松实现手机同电脑间资料(如照片、文档等)的一键式无线传输操作,极大地方便了跨平台协作场景中的效率提升[^2]。 ```python # 示例代码展示如何查询硬件基本信息 (Python) import platform def get_system_info(): system = platform.system() processor = platform.processor() architecture = platform.architecture()[0] return f"System Info:\nOS:{system}\nProcessor:{processor}\nArchitecture:{architecture}" print(get_system_info()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值