Oracle下如何用sql创建游标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle下如何用sql创建游标相关的知识,希望对你有一定的参考价值。
我用书上给的语句来创建游标
DECLARE cursor_name CURSOR FOR SELECT * from table_name;
可是按下回车之后,没有显示创建成功的类似字样,而是转到了第二行,好像还要再进行输入命令的样子。在进行存贮过程的时候也是出现的这个问题,不知为什么,请高手帮忙解答,谢谢
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; 参考技术A 游标是需要放在pl/sql块中,或者过程函数当中的,不能直接declare创建的 参考技术B 是这样的。。
DECLARE CURSOR Students_cur --声明游标
IS
SELECT name,dob
FROM Students
WHERE specialty = v_specialty;
begin
--其他代码
end;本回答被提问者采纳
以上是关于Oracle下如何用sql创建游标的主要内容,如果未能解决你的问题,请参考以下文章