一个存储过程的例子

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;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值