存储过程-查询数据插入游标后更新表字段

create or replace procedure p_update_03
as
 type balance is ref cursor;
 balanceDaylly balance;
 dealer_code VARCHAR2(70);--承运商名称
 delivery_carrier VARCHAR2(10);--司机
 carrier_code VARCHAR2(32);--承运商编码
 DEALER_NUMBER VARCHAR2(20);--车牌号
 serial_no VARCHAR2(32);
 begin
   open balanceDaylly for 
    select carrier.code,carrier.name,s.license,s.driver_name,pd.serial_no from jac_scl.shipment_detail sd 
    left join jac_scl.shipment s on s.id = sd.shipment_id
    left join jac_scl.pod_detail pd on pd.id = sd.pod_detail_id
    left join jac_scl.Wms_Organization carrier on carrier.id = s.carrier_id
    where pd.serial_no in ('E3004185','E8011988','E8011992');
   loop
     fetch balanceDaylly into carrier_code,dealer_code,DEALER_NUMBER,delivery_carrier,serial_no;
     exit when balanceDaylly%notfound;
     dbms_output.put_line(carrier_code||','||dealer_code||','||DEALER_NUMBER||','||delivery_carrier||','||serial_no);
     update pod_detail pp set pp.description = delivery_carrier  
            where pp.serial_no = serial_no;
     end loop; 
 end;
  
  --执行
   begin  
      p_update_03;  
   end; 
  --输出
H,安徽省**汽车贸易有限公司,,吴××,E8011992
B,合肥**货运有限公司,,张×,E3004185
B,合肥**货运有限公司,,张×,E8011992
B,合肥**货运有限公司,,张×,E8011988
  --将pod_detail的字段description赋值  

猜你喜欢

转载自minyongcheng.iteye.com/blog/2077539