oracle如何遍历游标 oracle遍历游标的方法

oracle如何实现遍历查询?

declare

十余年的类乌齐网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整类乌齐建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“类乌齐网站设计”,“类乌齐网站推广”以来,每个客户项目都认真落实执行。

teacher_name varchar(20)------------跟teacher表中老师名字类型保持一致

cursor t_name is select teachername from teacher---------申明游标t_name为从teacher表中查询老师名字

begin

open t_name;------打开游标t_name

loop-------开始循环(遍历)

fetch t_name into teacher_name-------将老师名字值赋予变量teacher_name

if t_name%found-------------开始遍历有值时插入以下数据

then

select name,count(*) into new_table

from table_teacher_student

where name=teacher_name group by name-----将一个老师名字依据条件插入新表数据

else

dmbs_output.put_line(‘完成所有工作’);---------遍历结束时输出完成工作

exit;

end if;

end loop;

仓促写下以上内容,可能部分语法报错,思路就是这样,很基本的一个游标使用。

oracle存储过程遍历游标问题

第二段代码是对的,

第一段代码是错的,你有没有发现,你第一段代码 的两条,后一条 应该是空值

还没有 fetch ,不应该判断 cur%notfound;

在fetch后,才应该判断 cur%notfound;

看看你的第一段代码:

open cur;

loop

exit when cur%notfound;

fetch cur into pname,pjob,psal;

dbms_output.put_line(pname||'的工作是'||pjob||',薪水是'||psal);

end loop;

close cur;

-- 第一轮循环, fetch到值, 进行输出

-- 第二轮循环,判断第一轮循环是否取到值; 然后fetch, 此时如果没有值, 你仍然进行输出

-- 第三轮循环,判断第二轮循环是否取到值,没有值,退出

其实你只要一行值符合要求

oracle中如何定义一个游标,打开一个游标,并遍历

1.游标定义:

cursor XXXA is

SELECT 语句;

XXXB cursorName%rowtype;

XXXA: 游标名

XXXB: 游标行数据定义

2. 打开游标:

-- 打开之前最好先关一下,防止上次发生异常没有关掉而引发不必要的异常

IF XXXA%ISOPEN THEN

CLOSE XXXA;

END IF;

Open XXXA ;

Loop

Fetch XXXA into XXXB;

exit when XXXA%NOTFOUND;

... ... 处理逻辑

end loop;

close XXXA;


分享文章:oracle如何遍历游标 oracle遍历游标的方法
转载注明:http://pwwzsj.com/article/hgshhc.html