循环读取写入表

declare
  ln_plantid     number;
  ln_itemid      number;
  ln_checkResult number;
  lv_uom         varchar(50);
  ln_isExist     number;

begin
  for cur in (select * from xxx x) loop
  
    begin
      select p.plant_id
        into ln_plantid
        from hcm_plant p
       where p.plant_code = cur.plantcode;
      dbms_output.put_line(cur.plantcode || '------' || ln_plantid);
    exception
      when others then
        continue;
        dbms_output.put_line('取工厂ID出错!');
    end;
  
    begin
      select i.item_id, i.primary_uom
        into ln_itemid, lv_uom
        from hcm_item i
       where i.item_code = cur.itemcode
         and i.plant_id = ln_plantid;
      dbms_output.put_line(cur.itemcode || '------' || ln_itemid ||
                           '-------' || lv_uom);
    exception
      when others then
        continue;
        dbms_output.put_line('取物料ID出错!'||cur.itemcode);
    end;
  
    select count(1)
      into ln_isExist
      from HME_ITEM_ONHAND_QUANTITIES t
     where t.plant_id = ln_plantid
       and t.item_id = ln_itemid
       and t.warehouse_code = cur.warehouse
       and t.locator_code = cur.locator
       and t.lot_number = cur.lotnumber;
  
    if ln_isExist > 0 then
      dbms_output.put_line('物料在库存表里面已经存在!');
      continue;
    else
    
      /*insert into HME_ITEM_ONHAND_QUANTITIES
        (plant_id,
         Item_Id,
         Warehouse_Code,
         Locator_Code,
         Loct_Onhand,
         Lot_Number,
         Uom_Code,
         Server_Id)
      values
        (ln_plantid,
         ln_itemid,
         cur.warehouse,
         cur.locator,
         cur.qty,
         cur.lotnumber,
         lv_uom,
         2);*/
             
      dbms_output.put_line('-------------------------------------------------');
      
    end if;
  end loop;

end;
原文地址:https://www.cnblogs.com/xyzabc0004/p/8439307.html