oracle 事务处理 commit rollback

本文介绍了一个用于实验室课程选择的存储过程实现细节。该过程接收学生编号、实验计划ID等参数,并完成选课记录的插入及批次选课人数更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create or replace procedure Pro_LabSelect(p_stno_in varchar2,p_labplanid_in integer,p_itemno_in varchar2,p_batchno_in varchar2,p_result_out out integer)
is
 -- v_nowtime varchar2(20); --时间
  v_term varchar2(10);
  v_courseid varchar2(20);
begin
  --select to_char(sysdate, 'yyyy-mm-dd hh24:mm:ss') into v_nowtime from dual;--取时间

  select term,courseid into v_term,v_courseid from labplan where id=p_labplanid_in; --取term,courseid

  insert into labselect(stno,term,itemno,batchno,day,courseid,planid)  values(p_stno_in,v_term,p_itemno_in,p_batchno_in,sysdate,v_courseid,p_labplanid_in);

  update labbatch set stucount=stucount+1 where batchno=p_batchno_in and labplanid=p_labplanid_in;--修改批次选课人数

  commit;
  p_result_out:=1;  --操作成功

Exception
  when others  then
    rollback;
    p_result_out:=0;--操作失败
end Pro_LabSelect;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值