今天想要在游标里面嵌套一个游标写个存储过程:
业务逻辑:两个接口表主表明细表;两个业务表主表明细表;
若接口表主表的关键信息不存在主表中,则插入主表和明细表信息;
若接口表主表的关键信息已经存在业务主表中,则更新业务主表,再查找业务表明细表,若存在更新,不存在插入;
存储过程使用到:两个游标CURSOR,IF ELSE函数;MERGE USING ON 函数;
学习到:存储过程的变量定义和游标等定义必须放在begin外,merge要update的字段不能是条件中的字段;
CREATE OR REPLACE PROCEDURE PROC_PRJ_DESIGN_INFO IS
/*=============================================================================
1、逻辑:获取设计材料清单接口表中尚未处理的数据执行如下处理
1)若“项目编号+单项任务”在物料需求计划表头中不存在则插入新记录,
否则用接口表数据更新其它对应字段信息
2)若按“单项+任务+物料”组合在物料需求计划明细表中不存在则插入新记录,
否则用接口表明细行数据更新对应字段信息
3)完成以上两步处理后,接口表表头记录的状态更新为“已处理”
2、频率:每5分钟
==============================================================================*/
CURSOR CUR IS
SELECT T.ID,
T.PROJECT_NO,
T.INDIVIDUAL_PJ_NO,
T.INDIVIDUAL_PJ_NAME,
T.TASK_MANAGER,
T.DESIGN_COMPANY,
T.DESIGNER,
T.COMPANY_CODE,
T.BUDGET_AMOUNT,
T.DESIGN_DATE,
T.CONTROL_LEVEL,