一个存储过程的例子
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;
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;
相关文章推荐
- SQL2000 存储过程中实现递归的一个简单例子
- 存储过程的一个例子
- 一个简单的存储过程使用事务的例子
- 在mysql存储过程中使用光标一个例子
- 自己写的一个存储过程例子,用来增加字段
- 一个建立存储过程的例子
- sql关于游标和游标、存储过程结合的一个例子
- 存储过程的一个例子
- 一个递归存储过程的例子
- 记录一个SQL Server 2005的存储过程,循环修改数据例子
- .net下 存储过程、事务处理 的一个小例子
- 一个存储过程比较好的例子
- 一个复杂的SQL存储过程例子
- 一个简单的mysql存储过程的例子
- 关于MSSQL存储过程中使用游标的一个小例子(学习)
- 一个PostgreSQL存储过程的例子:
- 一个简单的存储过程使用事务的例子
- mysql 一个带游标的存储过程例子
- 一个存储过程的例子
- Mysql 存储过程的一个例子