PL/SQL高级应用的学习1
来源:互联网 发布:知乎专栏怎么写文章 编辑:程序博客网 时间:2024/04/30 22:27
游标
l 什么是游标
游标是一种PL/SQL的控制结构:可以对SQL语句的处理进行现式控制,便于对表的行数据逐条进行处理。
l 游标分类
显示、隐式
l 游标的属性
%FOUND
%ISOPEN
%NOTFOUND
%ROWCOUNT
游标的简单使用举例:
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;
/
带参数的游标使用举例:
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;
/
使用FOR的带参数的游标:
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;
/
游标%ISOPEN使用举例:
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;
/
使用游标更新数据:
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;
/
隐式游标
begin
for cur in(select aid from a) loop
dbms_output.put_line(cur.aid);
end loop;
end;
/
- PL/SQL高级应用的学习1
- PL/SQL高级应用的学习2
- pl/sql高级应用
- 高级PL/SQL的使用;
- PL/SQL的高级查询
- PL/SQL高级编程
- PL/SQL高级编程
- PL/SQL 高级应用(游标、存储过程、函数、程序包)
- Oracle10G学习笔记之五Pl/sql高级
- Oracle学习笔记之PL/SQL高级进阶
- PL/SQL 学习笔记1
- SQL查询的高级应用
- PL/SQL程序语言的学习---PL/SQL块
- PL/SQL中Ref Cursor的应用
- PL/SQL Cursor双嵌套的应用
- 关于PL\SQL应用的碎记
- PL-SQL 包的创建和应用
- Oracle PL/SQL 高级编程
- 使用生成后事件(将一些文件自动放入Bin目录下面)
- Google Chrome 试用感受
- 要开始做事了
- SqlDependency 的数据库配置步骤
- ORACLE用户管理
- PL/SQL高级应用的学习1
- Spring事务学习
- BeanFactory和ApplicationContext学习
- Hibernate笔记2--映射对象之间的关系
- 原创:自己写代码实现遥感影像自动配准
- PHP串行化与JSON
- 开源GIS系统现状分析
- clistctrl单行多行选中问题
- asp.net电子商务开发实战 视频 适合初学者。