oracle中的存储过程初试

CREATE OR REPLACE PROCEDURE p_sap_data_import
Authid Current_User is

   v_table_count   NUMBER;
   v_sql           VARCHAR2 (1000);
BEGIN
--第一步更新UE_ALLMATERIAL_TEMP表中QC1UNION,QC3UNION字段
      BEGIN
      UPDATE
      ue_allmaterial_temp_TEST b
         SET b.qc1union =
                (   b.中文长文本_原始描述
                 || b.旧物料号
                 || b.物料类型
                 || b.lot号
                 || b.机组
                 || b.质保分级
                 || b.安全分级
                 || b.系统号
                 || b.材质
                 || b.规格型号
                 || b.功能位置码
                );

      UPDATE ims.ue_allmaterial_temp_TEST b
         SET b.qc3union =
                (   b.中文长文本_原始描述
                 || b.物料类型
                 || b.lot号
                 || b.质保分级
                 || b.安全分级
                 || b.规格型号
                 || b.功能位置码
                );

--第二步按三步匹配存在的SAP物料号
      UPDATE ims.ue_allmaterial_temp_TEST a
         SET a.物料号 = (SELECT 物料号
                           FROM ims.ue_sapnozidian0803 b
                          WHERE a.qc1union = b.qc1union);

      UPDATE ims.ue_allmaterial_temp_TEST a
         SET a.物料号 =
                  (SELECT 物料号
                     FROM ims.ue_sapnozidian0803 b
                    WHERE a.旧物料号 || a.物料类型 = b.旧物料号 || b.物料类型)
       WHERE a.旧物料号 IS NOT NULL
         AND f_subnum_alpher (a.旧物料号) = 'True'
         AND a.物料类型 = 'C120 材料'
         AND 物料号 IS NULL;

      UPDATE ims.ue_allmaterial_temp_TEST a
         SET 物料号 = (SELECT 物料号
                         FROM ims.ue_sapnozidian0803 b
                        WHERE a.qc3union = b.qc3union)
       WHERE a.规格型号 IS NOT NULL
         AND LENGTH (a.功能位置码) > 8
         AND a.功能位置码 IS NOT NULL
         AND a.物料号 IS NULL;
   EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         INSERT INTO ims.imscm_exception_msg
                     (exception_code, exception_msg
                     )
              VALUES (SYS_GUID (), '' || '第一步匹配存在的SAP物料号出错!'
                     );
      --TODO
      WHEN OTHERS
      THEN
         INSERT INTO ims.imscm_exception_msg
                     (exception_code, exception_msg
                     )
              VALUES (SYS_GUID (), '' || '第一步匹配存在的SAP物料号出错!'
                     );
   END;
      commit;
END p_sap_data_import;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值