PL/SQL高级应用的学习1
2008-09-04 19:54
507 查看
游标
l 什么是游标[/b][/b]游标是一种PL/SQL的控制结构:可以对SQL语句的处理进行现式控制,便于对表的行数据逐条进行处理。
l 游标分类[/b][/b]
显示、隐式
l 游标的属性[/b][/b]
%FOUND
%ISOPEN
%NOTFOUND
%ROWCOUNT
游标的简单使用举例[/b]:[/b]
DECLARE
CURSOR mycur IS --申请一个内存区域,存放RESULT
SELECT * FROM PERSON;
myrecord person%rowtype; --声明一个记录,结构通person表。
begin
open mycur; --打开结果集
fetch mycur into myrecord; --将结果集中的当前游标所在的那条数据存放
在myrecord中
while mycur%found loop --%found判断,如果没有读取完,则执行循环
dbms_output.put_line(myrecord.id||','||myrecord.name);
fetch mycur into myrecord;
end loop;
close mycur; --关闭结果集
end;
/
带参数的游标使用举例:[/b][/b]
declare
cursor cur_para(myId varchar2) is --声明参数,指定类型即可。
select name from person where id=myId;
t_name person.name%type;
begin
open cur_para('1'); --写入游标参数
loop
fetch cur_para into t_name;
exit when cur_para%notfound;
dbms_output.put_line(t_name);
end loop;
close cur_para;
end;
/[/b]
使用[/b]FOR[/b]的带参数的游标:[/b][/b]
declare
cursor cur(mid varchar2) is --显示声明游标
select name from person where id=mid;
begin
dbms_output.put_line('*******结果集为:**********');
for i in cur('1') loop
dbms_output.put_line(i.name);
end loop;
end;
/
游标[/b]%ISOPEN[/b]使用举例:[/b][/b]
declare
tname person.name%type;
cursor cur(cid varchar) is
select name from person where id = cid;
begin
if cur%isopen then
dbms_output.put_line('游标被打开!');
else
open cur('1');
fetch cur into tname;
close cur;
end if;
dbms_output.put_line('游标已经被关闭'||tname);
end;
/
使用游标更新数据:[/b][/b]
declare
cursor cur is
select name from person for update; --只有for update才能更新
text varchar2(10);
begin
open cur;
fetch cur into text;
while cur%found loop
update person set name = name||'_t' where CURRENT OF CUR;--获取当前行
fetch cur into text;
end loop;
close cur;
end;
/
隐式游标[/b][/b]
begin
for cur in(select aid from a) loop
dbms_output.put_line(cur.aid);
end loop;
end;
/
相关文章推荐
- PL/SQL高级应用的学习2
- Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)
- ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
- Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)
- Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)
- Oracle PL/SQL高级应用 游标
- Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)
- 关于mysql的sql语句的汇总(学习笔记)03(mysql高级应用)
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
- 第五天、PL/SQL高级应用
- PL/SQL 高级应用(游标、存储过程、函数、程序包)
- PL/SQL函数学习笔记:trim和to_char的应用
- Oracle10G学习笔记之五Pl/sql高级
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
- Oracle PL/SQL 高级应用(游标、存储过程、函数、程序包)
- Oracle PL/SQL高级应用 存储过程
- Oracle PL/SQL高级应用 视图 同义词 序列
- PL/SQL 高级应用
- 数据库高级应用学习报告【T-sql】