包含头和明细的接口存储过程(从中间表读取数据到系统)

本文介绍了一个存储过程的实现,该过程涉及从中间表中提取数据并将其存储到目标系统中,包括procedures、packages和package Bodies的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存储过程三:

一.procedures

create or replace procedure PR_BOM is
  /*
  * 功能:从中间表获取BOM及其明细信息
  * 作者:KAIQI.ZHAO
  * 创建日期 2019-06-06
  * 最后修改时间 2019-06-06 14:35:29
  */
  v_con number;
  V_MSG varchar2(1000);
  --定义异常
  SIGING_EXCEPTION EXCEPTION; --本过程异常

  OTHERS_EXCEPTION EXCEPTION; --包特殊异常
  PRAGMA EXCEPTION_INIT(OTHERS_EXCEPTION, -20999);
begin
  SELECT count(1) into v_con FROM JSBOM WHERE IS_READ = '0';
  if v_con > 0 then
    for cur_temp in (SELECT ID, MATERIAL_CODE, BOM_CODE
                       FROM JSBOM
                      WHERE IS_READ = '0') loop
      begin
        --循环抓取BOM信息
        PA_BOM.sp_bom(cur_temp.ID,
                      cur_temp.material_code,
                      cur_temp.bom_code,
                      V_MSG);
      exception
        when OTHERS_EXCEPTION then
          ROLLBACK;
          V_MSG := '执行异常:' || SQLCODE || ':' || SQLERRM || ':' ||
                   SUBSTR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE, 1, 244);
          --记录异常日志、
          LOG_PKG.SAVE_ERROR_LOG(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,
                                 V_MSG);
        WHEN OTHERS THEN
          ROLLBACK;
          V_MSG := '执行异常:' || SQLCODE || ':' || SQLERRM || ':' ||
                   SUBSTR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE, 1, 244);
          --记录异常日志、
          LOG_PKG.SAVE_ERROR_LOG(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,
                                 V_MSG);
      end;
    end loop;
  end if;
  ----------------------------抓取中间表明细数据转存WMS-----------------------------------------------------------
  SELECT count(1) into v_con FROM JSBOM_ITEM WHERE IS_READ = '0';
  if v_con > 0 then
    for cur_temp in (SELECT BOM_ID, ITEM_ID, ITEM_CODE, MATERIAL_CODE
                       FROM JSBOM_ITEM
                      WHERE IS_READ = '0') loop
      begin
        --循环抓取BOM信息
        PA_BOM.sp_bom_detail(cur_temp.bom_id,
                             cur_temp.item_id,
                             cur_temp.item_code,
                             cur_temp.material_code,
                             V_MSG);
      exception
        when OTHERS_EXCEPTION then
          ROLLBACK;
          V_MSG := '执行异常:' || SQLCODE || ':' || SQLERRM || ':' ||
                   SUBSTR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE, 1, 244);
          --记录异常日志、
          LOG_PKG.SAVE_ERROR_LOG(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,
                                 V_MSG);
        WHEN OTHERS THEN
          ROLLBACK;
          V_MSG := '执行异常:' || SQLCODE || ':' || SQLERRM || ':' ||
                   SUBSTR(DBMS_UTILITY.FORMAT_ERROR_B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值