批量更新人工费率

PROCEDURE UPDATE_PEOPLE_FATE AS
cursor resource_cur is
select trim(id) ID,
TRIM(organization_code) ORGANIZATION_CODE, --组织
TRIM(DEPT_CODE) DEPT_CODE, --部门
TRIM(RATE) RATE --费率
from CUX.UPDATE_PEOPLE_TEMP;
L_organization_id NUMBER := 0;
L_count NUMBER := 0;
V_ORG_COUNT NUMBER := 0;
E_CHECK EXCEPTION;
V_ERR_MESSAGE VARCHAR2(2000);
BEGIN
SELECT COUNT(DISTINCT CWI.ORGANIZATION_CODE)
INTO V_ORG_COUNT
FROM CUX.UPDATE_PEOPLE_TEMP CWI;
IF V_ORG_COUNT <> 1 THEN
insert into CUX_Blue_Gold (A, B, c)
VALUES ('人工费率导入', '-导入数据只能是同个组织-', to_char(sysdate, 'yyyy-mm-dd'));
V_ERR_MESSAGE := V_ERR_MESSAGE || '-导入数据只能是同个组织-';
RAISE E_CHECK;
END IF;
for resource_rec in resource_cur loop
BEGIN
select mco.ORGANIZATION_ID
INTO L_organization_id
from meg_cux_org_v mco
where organization_code = resource_rec.ORGANIZATION_CODE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
insert into CUX_Blue_Gold
(A, B, c)
VALUES
('人工费率导入',
'组织【' || resource_rec.ORGANIZATION_CODE || '】不存在-',
to_char(sysdate, 'yyyy-mm-dd'));
commit;
V_ERR_MESSAGE := '组织【' || resource_rec.ORGANIZATION_CODE ||
'】不存在-';
RAISE E_CHECK;
END;
BEGIN
select count(*)
into l_count
from BOM_RESOURCES
where substr(RESOURCE_CODE, 1, 3) = resource_rec.DEPT_CODE
and organization_id = L_organization_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
insert into CUX_Blue_Gold
(A, B, c)
VALUES
('人工费率导入',
'部门【' || resource_rec.DEPT_CODE || '】不存在-',
to_char(sysdate, 'yyyy-mm-dd'));
commit;
V_ERR_MESSAGE := '部门【' || resource_rec.DEPT_CODE || '】不存在-';
RAISE E_CHECK;
END;

UPDATE CST_DEPARTMENT_OVERHEADS
SET rate_or_amount =round( resource_rec.RATE,6)
where OVERHEAD_ID IN
(select resource_id
from BOM_RESOURCES
where substr(RESOURCE_CODE, 1, 3) = resource_rec.DEPT_CODE
and organization_id = L_organization_id) --资源ID
and cost_type_id = 1001 --类型
and organization_id = L_organization_id; --组织ID

end loop;
commit;
END UPDATE_PEOPLE_FATE;

posted @   bule神  阅读(136)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
点击右上角即可分享
微信分享提示