您的位置:首页 > 其它

一个存储过程的例子

2009-09-15 10:23 330 查看
create or replace procedure init is
begin
for i in 1..100
loop
insert into ticket values('1111',to_char(i,'0000'));
end loop;

for i in 1..100
loop
insert into ticket values('2222',to_char(i,'0000'));
end loop;

for i in 1..100
loop
insert into ticket values('3333',to_char(i,'0000'));
end loop;
end;

这句话来调用:

begin
init();
end;

买火车票的存储过程:

create or replace procedure sell(trainno varchar2)
is
t ticket%rowtype;//rowtype 表示数据库ticket一个表的类型,t 就是表示一个表
cursor c1(tno varchar2) is
select * from ticket where trainno=tno
for update;//这里要用 is 而且得加上for update 因为后面有删除这个动作
begin
if not(trainno = '1111' or trainno = '2222' or trainno = '3333') then
DBMS_OUTPUT.PUT_LINE('车次不正确');
return;
end if;

open c1(trainno);
fetch c1 into t;
if c1%found then
DBMS_OUTPUT.PUT_LINE('您买的是: ' || trainno || '票的' || t.ticketnum || '号票');
delete from ticket where current of c1;//因为有这句话 所以前面要加上for update
commit;
else
DBMS_OUTPUT.PUT_LINE('没票');
end if;

close c1;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: