oracle数据处理需求02

由于系统原因,导致主数据必需的属性确实,导致订单流程不能正常的流转,本脚本是后期补充确实的属性数据:

--创建临时表
select a.*, a.rowid from ai_zuowj.zwj_temp_0912 a;
--添加过程表字段
alter table ai_zuowj.zwj_temp_0912 add(prod_inst_id number(12),
                                       order_item_id number(12));  
--添加刷新标识
alter table ai_zuowj.zwj_temp_0912 add(modify_flag varchar(10),
                                       modify_msg varchar(160)); 
--初始化刷新标识
update ai_zuowj.zwj_temp_0912 a set a.modify_flag = 0, a.modify_msg = 'C';
--更新过程表数据1
update ai_zuowj.zwj_temp_0912 a
   set a.prod_inst_id =
       (select aa.prod_inst_id
          from iot.bo_serv_order aa
         where aa.product_id = '13409920'
           and aa.order_item_id in
               (select oi.order_item_id
                  from iot.order_item oi
                 where oi.cust_order_id = a.cust_order_id));
--更新过程表数据2
update ai_zuowj.zwj_temp_0912 a
   set a.order_item_id =
       (select aa.order_item_id
          from iot.bo_serv_order aa
         where aa.product_id = '13409920'
           and aa.order_item_id in
               (select oi.order_item_id
                  from iot.order_item oi
                 where oi.cust_order_id = a.cust_order_id));
--执行过程
declare
  cursor temp_data is
    select *
      from ai_zuowj.zwj_temp_0912
     where modify_flag = 0
       and modify_msg = 'C';

  vn_atom_action_id_dwlx   number(12);
  vn_atom_action_id_dwfz   number(12);
  vn_atom_action_id_dwsx   number(12);
  vn_atom_action_id_dwlxsx number(12);
  vn_err_msg               varchar(160);
begin
  for i in temp_data loop
    begin
      select 591760000000 + ai_zuowj.zwj_temp_sequence.nextval
        into vn_atom_action_id_dwlx
        from dual;
      select 592760000000 + ai_zuowj.zwj_temp_sequence.nextval
        into vn_atom_action_id_dwfz
        from dual;
      select 593760000000 + ai_zuowj.zwj_temp_sequence.nextval
        into vn_atom_action_id_dwsx
        from dual;
      select 594760000000 + ai_zuowj.zwj_temp_sequence.nextval
        into vn_atom_action_id_dwlxsx
        from dual;
    
      insert into iot.bo_serv_item
        (ATOM_ACTION_ID,
         ORDER_ITEM_ID,
         PROD_INST_ID,
         ATTR_ID,
         VALUE,
         APP_START_DT,
         APP_END_DT,
         START_DT,
         END_DT,
         STATE,
         ATTR_VALUE_ID)
      values
        (vn_atom_action_id_dwlx,
         i.order_item_id,
         i.prod_inst_id,
         10010076,
         i.dwfz,
         null,
         null,
         null,
         null,
         'ADD',
         null);
      insert into iot.bo_serv_item
        (ATOM_ACTION_ID,
         ORDER_ITEM_ID,
         PROD_INST_ID,
         ATTR_ID,
         VALUE,
         APP_START_DT,
         APP_END_DT,
         START_DT,
         END_DT,
         STATE,
         ATTR_VALUE_ID)
      values
        (vn_atom_action_id_dwfz,
         i.order_item_id,
         i.prod_inst_id,
         10020086,
         10,
         null,
         null,
         null,
         null,
         'ADD',
         null);
      insert into iot.prod_inst_serv_attr
        (PROD_INST_ID,
         ATOM_ACTION_ID,
         ATTR_ID,
         ATTR_VALUE_ID,
         ATTR_VALUE,
         EFF_DATE,
         EXP_DATE,
         STATUS_CD,
         STATUS_DATE,
         CREATE_DATE,
         VERSION,
         COMMON_REGION_ID)
      values
        (i.prod_inst_id,
         vn_atom_action_id_dwsx,
         10010076,
         null,
         i.dwfz,
         sysdate,
         to_date('30000101', 'yyyymmdd'),
         1000,
         sysdate,
         sysdate,
         sysdate,
         8321000);
      insert into iot.prod_inst_serv_attr
        (PROD_INST_ID,
         ATOM_ACTION_ID,
         ATTR_ID,
         ATTR_VALUE_ID,
         ATTR_VALUE,
         EFF_DATE,
         EXP_DATE,
         STATUS_CD,
         STATUS_DATE,
         CREATE_DATE,
         VERSION,
         COMMON_REGION_ID)
      values
        (i.prod_inst_id,
         vn_atom_action_id_dwlxsx,
         10020086,
         null,
         10,
         sysdate,
         to_date('30000101', 'yyyymmdd'),
         1000,
         sysdate,
         sysdate,
         sysdate,
         8321000);
      update ai_zuowj.zwj_temp_0912 a
         set a.modify_flag = 1, a.modify_msg = 'S'
       where a.cust_order_id = i.cust_order_id
         and a.modify_flag = 0;
      commit;
    exception
      when others then
        vn_err_msg := substr(sqlerrm, 1, 150);
        update ai_zuowj.zwj_temp_0912 a
           set a.modify_flag = 2, a.modify_msg = vn_err_msg
         where a.cust_order_id = i.cust_order_id
           and a.modify_flag = 0;
    end;
    commit;
  end loop;
end;


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值