- 26
- 0
- 约1.08万字
- 约 9页
- 2016-11-27 发布于河南
- 举报
游标使用全解
-- 声明游标;CURSOR cursor_name IS select_statement
--For 循环游标
--(1)定义游标
--(2)定义游标变量
--(3)使用for循环来使用这个游标
declare
--类型定义
cursor c_job
is
select empno,ename,job,sal
from emp
where job=MANAGER;
--定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
c_row c_job%rowtype;
begin
for c_row in c_job loop
dbms_output.put_line(c_row.empno||-||c_row.ename||-||c_row.job||-||c_row.sal);
end loop;
end;
--Fetch游标
--使用的时候必须要明确的打开和关闭
declare
--类型定义
cursor c_job
is
select empno,ename,job,sal
from emp
where job=MANAGER;
--定义一个游标变量
c_row c_job%rowtype;
begin
open c_job;
loop
--提取一行数据到c_row
fetch c_job into c_row;
--判读是否提取到值,没取到值就退出
--取到值c_job%notfound 是false
--取不到值c_job%notfound 是true
exit when c_job%notfound;
dbms_output.put_line(c_row.empno||-||c_row.ename||-||c_row.job||-||c_row.sal);
end loop;
--关闭游标
close c_job;
end;
--1:任意执行一个update操作,用隐式游标sql的属性%found,%notfound,%rowcount,%isopen观察update语句的执行情况。
begin
update emp set ENAME=ALEARK WHERE EMPNO=7469;
if sql%isopen then
dbms_output.put_line(Openging);
else
dbms_output.put_line(closing);
end if;
if sql%found then
dbms_output.put_line(游标指向了有效行);--判断游标是否指向有效行
else
dbms_output.put_line(Sorry);
end if;
if sql%notfound then
dbms_output.put_line(Also Sorry);
else
dbms_output.put_line(Haha);
end if;
dbms_output.put_line(sql%rowcount);
exception
when no_data_found then
dbms_output.put_line(Sorry No data);
when too_many_rows then
dbms_output.put_l
您可能关注的文档
最近下载
- (正式版)DB1501∕T 0038-2023 《红花生态种植技术规程》.pdf VIP
- 2025年广东中山中考语文试题及答案(word版) .pdf VIP
- 《中国文化概论》张岱年课后习题答案.pdf VIP
- 德阳市中考:2025年-2023年《化学》考试真题与参考答案.pdf
- 公路平面交叉设计细则.docx VIP
- 人教版二年级下册数学全册教学设计(配2026年春改版教材).docx
- 智慧树 知到 大学生爱国教育十讲 章节测试答案.docx VIP
- 2024年广东中山中考语文试题及答案.pdf VIP
- 医院药品采购管理制度细则.docx VIP
- 2《JavaScript初级》教学计划大纲.docx VIP
原创力文档

文档评论(0)