ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

什么叫——游标

2021-11-03 15:04:46  阅读:123  来源: 互联网

标签:ename sal -- 什么 游标 emp 表中


定义:临时存储一个查询返回的多行数据;
游标使用方法:声明–打开–读取–关闭

语法:
声明游标:cursor 游标名称(参数) is 查询语句;
打开游标:open 游标名称;
游标取值:fetch 游标名称 into 标量参数;
关闭游标:close 游标名称;

游标属性:
属性 返回值类型 说明
%rowcount 整型 获得fetch语句返回的数据行数
%found 布尔型 最近的fetch语句返回一行数据则为真,否则为假
%notfound 布尔型 与%found属性返回值相反
%isopen 布尔型 游标已经打开时值为真,否则为假

无参数游标的创建及使用
–使用游标查询emp表中所有员工的姓名和工资,并将其打印出来
declaer
–声明游标
cursor c_emp is select ename,sal from emp; --ename 姓名 sal 工资 emp 表
–声明变量,接受游标中的数据
v_ename emp.ename%TYPE; --定义v_ename的类型和emp表中的ename字段一致
v_sal emp.sal%TYPE; --定义v_sal的类型和emp表中的sal字段一致
begin
–打开游标
open c_emp;
–遍历游标
loop --循环
–获取游标中的数据
fetch c_emp into v_ename,v_sal; --将游标c_emp的数据赋值给两个变量,注意游标声明时数据的分列,先是ename后是sal,所有赋值时顺序、个数、类型也要一致

–退出循环条件
exit when c_emp%notfound; --游标c_emp中没数据时返回真,结束循环 --%notfound默认刚开始有值

–输出数据
dbms_output.put_line(‘姓名’||v_ename||’-’||‘工资’||v_sal);

end loop;--关闭循环

–关闭游标
close c_emp;
end;

带参数游标的创建及使用
–使用游标查询emp表中所有员工的姓名和工资,并将其打印出来
declaer
–声明游标
cursor c_emp(v_deptno emp.deptno%TYPE) is select ename,sal from emp where deptno = v_deptno; --ename 姓名 sal 工资 deptno 部门 emp 表 v_deptno游标参数
–声明变量,接受游标中的数据
v_ename emp.ename%TYPE; --定义v_ename的类型和emp表中的ename字段一致
v_sal emp.sal%TYPE; --定义v_sal的类型和emp表中的sal字段一致
begin
–打开游标
open c_emp(具体参数值);在此处写具体参数值,括号里面的参数值,这个值会被拿到声明游标时的查询语句中查询
–遍历游标
loop --循环
–获取游标中的数据
fetch c_emp into v_ename,v_sal; --将游标c_emp的数据赋值给两个变量,注意游标声明时数据的分列,先是ename后是sal,所有赋值时顺序、个数、类型也要一致

–退出循环条件
exit when c_emp%notfound; --游标c_emp中没数据时返回真,结束循环 --%notfound默认刚开始有值

–输出数据
dbms_output.put_line(‘姓名’||v_ename||’-’||‘工资’||v_sal);

end loop;--关闭循环

–关闭游标
close c_emp;
end;

标签:ename,sal,--,什么,游标,emp,表中
来源: https://blog.csdn.net/weixin_44409956/article/details/121121150

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有