存储过程01

来源:互联网 发布:安索夫矩阵 编辑:程序博客网 时间:2024/04/29 09:22
create or replace procedure proc_cancel_car_order_shangqi   as--上汽取消订单begin     for cur_result in (SELECT RENT.* FROM V_CAR_RENTAL RENT, V_CAR_MANAGER CAR                       WHERE RENT.CAR_ID=CAR.CAR_ID AND CAR.PR_ORG_NO='1003'                         AND RENT.ORDER_STATUS IN ('01','02')                        AND TO_CHAR(RENT.CAR_RENTAL_DATE,'YYYYMMDD')=TO_CHAR(SYSDATE,'YYYYMMDD')                        AND  (RENT.CAR_RENTAL_DATE+15/24/60) < SYSDATE) loop      if cur_result.ORDER_STATUS = '02' then       --支付未取车的生成一条申请退费记录       insert into p_platform_fastpay_refund(ID,USER_ID,ORDER_NO,P_REFUND_TYPE,P_REFUND_APPLY_TIME)       values (SEQ_P_PLATFORM_FASTPAY_REFUND.nextVal,cur_result.USER_ID,cur_result.ORDER_NO,cur_result.application_way,sysdate);       --修改车辆档案中车状态       update V_CAR_MANAGER set CAR_LEASE_STATUS='00' where car_id = cur_result.car_id;       --修改订单状态       update V_CAR_RENTAL set ORDER_STATUS='04' , CANCEL_REASON ='02' where  RENTAL_ID = cur_result.RENTAL_ID;       commit;    else       update V_CAR_MANAGER set CAR_LEASE_STATUS='00' where car_id = cur_result.car_id;       update V_CAR_RENTAL set ORDER_STATUS='04' , CANCEL_REASON ='02' where  RENTAL_ID = cur_result.RENTAL_ID;       commit;    end if;   end loop;end proc_cancel_car_order_shangqi;
0 0