oracle10g 游标查询,Oracle10g游标操作

游标是指向某个数据集的指针,该指针可以在该数据集合中进行移动并操作数据的对象

* 保存结果集数据

* 取得结果集数据

* 游标

* 声明游标 declare cursor student_query_cur is select * from student ;

* 打开游标 open student_query_cur;

* 操作游标 fetch student_query_cur into record;//从游标里取一行记录赋值给record变量

* 关闭游标 close student_query_cur;

* 游标常用属性 %ISOPEN 是否打开

%FOUND 是否可以提取到数据

%NOTFOUND 提取不到数据

%ROWCOUNT记载已经被提取的行数

* SQL游标(系统中声明的游标)

---------------------------------------------------------------------

CREATE OR REPLACE PROCEDURE MUSICQUERY(musicid in int)

as

begin

--声明使用游标

declare

cursor music_sets is select * from music where id!=musicid;

--声明变量保存查询的结果

music_record music%ROWTYPE;

begin

-- 打开游标

open music_sets;

-- 如果是结果集中含有多行记录,则需要使用 ..loop循环

loop

--如果游标无数据可取则退出loop

if(music_sets %NOTFOUND) then exit;end if;

-- 判断游标是否已经打开

-- if(music_sets %ISOPEN) then

--如果游标中可以取得数据

--  if(music_sets %FOUND) then

fetch music_sets into music_record;

dbms_output.put_line('音乐标题:'||music_record.title||' '||'演唱:'||music_record.artist);

--  end if;

--  end if;

end loop;

-- 关闭游标

close music_sets;

end;

end;

------------------------------------------------------------------------------------------

--show errors ;

create table music(id number not null primary key ,title varchar2(20),artist varchar2(20));

insert into music values(1,'大海','张雨');

commit ;

CREATE OR REPLACE PROCEDURE UPDATEMUSIC(name in varchar2,author in varchar2)

as

begin

update music set artist=author where title like ('%'||name||'%');

dbms_output.put_line(SQL %ROWCOUNT);  --返回受上一语句影响的行数

end;

/

exec UPDATEMUSIC('大海','张雨生');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值