问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle数据库中,使用fetch语句提取游标数据,fetch语句怎么理解呀!?哪位Oracle高手帮忙解释下.Thankyou

发布网友 发布时间:2022-04-08 01:28

我来回答

3个回答

热心网友 时间:2022-04-08 02:57

游标有三种:隐式游标 ,显示游标,ref游标 ,下面对于每一种给你写一个例子!
1:隐式游标
使用DML语句和单行查询语句时自动创建隐式游标
隐式游标自动声明、打开和关闭,其名为 SQL
通过检查隐式游标的属性可以获得最近执行的DML 语句的信息
隐式游标的属性 (P134)
%FOUND – SQL 语句影响了一行或多行时为 TRUE
%NOTFOUND – SQL 语句没有影响任何行时为TRUE
%ROWCOUNT – SQL 语句影响的行数
%ISOPEN - 游标是否打开,隐式游标始终为FALSE
BEGIN
UPDATE t_student SET sname = '张三丰'
WHERE sid= ‘09001';
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE('表已更新');
END IF;
END;

BEGIN
UPDATE emp SET deptno=20 WHERE empno=7839;
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('编号未找到。');
ELSE
DBMS_OUTPUT.PUT_LINE(‘数据已更新');
END IF;
END;
DECLARE
v_no emp.empno%type;
v_name emp.ename%type;
BEGIN
v_no:= '&职员编号';
SELECT ename INTO v_name
FROM emp WHERE empno=v_no;
IF SQL%ROWCOUNT>0 THEN
DBMS_OUTPUT.PUT_LINE('职员的姓名是 '||v_name);
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('职员未找到');
END;

2:显示游标
显式游标是由PL/SQL程序员定义和命名的游标
显式游标用于多行查询
显式游标需要在PL/SQL块的声明部分声明,在执行部分或异常处理部分打开,取完数据后将其关闭
declare
v_name t_student.sname%type;
Cursor cur_stu Is select sname from t_student;
begin
Open cur_stu;
Loop
Fetch cur_stu Into v_name;
Exit When cur_stu%NotFound;
dbms_output.put_line('学生姓名:'||v_name);
End Loop;
Close cur_stu;
end;
declare
CURSOR c_emp IS
SELECT empno,ename,sal FROM emp ORDER BY sal;
v_empno emp.empno%TYPE;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
begin
Open c_emp;
Loop
Fetch c_emp Into v_empno,v_ename,v_sal;
Exit When c_emp%NotFound;
dbms_output.put_line(v_empno||’ ’||v_ename||’ ’||v_sal);
End Loop;
Close c_emp;
end;
带参数的游标
declare
v_deptno emp.deptno%type; --部门编号变量
cursor c_emp(dno number) is
select empno,ename,sal from emp where deptno=v_deptno;
r_emp c_emp%rowtype; --游标行
begin
v_deptno:='&部门编号'; --输入参数值
Open c_emp(v_deptno);--传递参数
Loop
Fetch c_emp Into r_emp;
Exit When c_emp%NotFound;
dbms_output.put_line(r_emp.empno||' '||r_emp.ename||' '||r_emp.sal);
End Loop;
Close c_emp;
end;
3:Ref游标
DECLARE
TYPE refcur IS REF CURSOR;
ref_cur refcur; --REF游标变量
rec_emp emp%rowtype; --员工行变量
rec_dept dept%rowtype; --部门行变量
selection VARCHAR2(1) := UPPER(SUBSTR('&tab',1,1));
BEGIN
IF selection = 'E' THEN
OPEN ref_cur FOR SELECT * FROM emp;
DBMS_OUTPUT.PUT_LINE('===员工信息===');
LOOP
EXIT WHEN ref_cur%NOTFOUND;--判断是否存在
FETCH ref_cur INTO rec_emp; --游标控制员工行
DBMS_OUTPUT.PUT_LINE('姓名:'||rec_emp.ename ||' 职务:'||rec_emp.job||
' 工资:'||rec_emp.sal);
END LOOP;
ELSIF selection = 'D' THEN
OPEN ref_cur FOR SELECT * FROM dept;
DBMS_OUTPUT.PUT_LINE('===部门信息===');
LOOP
FETCH ref_cur INTO rec_dept; --游标控制部门行
EXIT WHEN ref_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('编号:'||rec_dept.deptno ||' 名称'||rec_dept.dname||
' 地址:'||rec_dept.loc);
END LOOP;
ELSE
DBMS_OUTPUT.PUT_LINE('请输入员工信息(E) 或 部门信息(D)');
RETURN;
END IF;
CLOSE ref_cur;
END;

热心网友 时间:2022-04-08 04:15

fetch就是将游标里的数据取出来存放在变量里

热心网友 时间:2022-04-08 05:50

取出游标中指针位置行的数据赋给之前声明的变量
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 杨过和小龙女那部电视剧叫啥 06版《神雕侠侣》杨过眼泪里有小龙女,这版杨过和小龙女是由谁饰演的? 杨过,小龙女是什么的电视剧的人物 有杨过和小龙女的那部电视剧叫什么名字? 求关于杨过和小龙女的电视剧 杨过与小龙女 演的电视剧是什么 杨过小龙女是哪个电视剧里的? 杨过和小龙女是哪个电视剧的? 墨绿色针织衫外套搭配什么颜色好看 林肯MKZ怎么样?值得买吗? 林肯牌汽车最多价值多少钱,最少呢? 全新2020款林肯领航员正式上市,售价区间为109.80-119.80万元! 在闲鱼上面买了一个手机 oppok1 680元 是货到付款 但是拿到货确实模型机 这个怎么办 SQL中如何确定游标到了最后?以及游标的作用是什么? 柜台样机是什么意思?可以使用吗?是不是模型? 模型机开机能显示时间吗? 海尔电视机长期使用waifai信号回出现无法进入系统吗 国家对养老院的补贴 农村养老保险补贴政策文件 2014 年的电影《星际穿越》中有哪些科学上的错误 如何提取QQ群里成员的QQ号码??一次性获取所有的。 你看过杨过和小龙女的电视剧吗? 除了神雕侠侣还有哪部电视剧是讲杨过和小龙女的 有部神雕的电视剧:《杨过和小龙女》(好像是这么叫的,不确定),很多年前看过,有看过的么?急寻啊~~~ 号称翻拍王的《神雕侠侣》,到现在已经有10个版本,其中那一版能堪称为经典? 有个电视剧里面有杨过 小龙女还有韦小宝那是什么名字? 那里面有古代也有现代 《神雕侠侣》众多翻拍版本中,哪一版最经典? 关于杨过和小龙女后人的电视剧 孩子考前患上考试焦虑症,家长应该怎么办 孩子考前焦虑,你该怎么办? 孩子有考试焦虑方面的症状,怎么解决好? 孩子每次考试前都紧张的睡不着该如何开导? 高三考试频繁,父母该如何应对孩子考前焦虑的症状? 怎样才能帮助孩子克服考前焦虑症 孩子考试前总会焦虑,父母应该怎么引导他们排解压力呢? 孩子出现考试焦虑怎么办?做父母的怎样给孩子减压? 考前焦虑怎么办 怎样面对高考前孩子焦虑症 面对孩子的考试焦虑,家长怎么办 学生患有考试焦虑症该怎么办呢?