存储过程三:
一.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