oracle 游标嵌套使用

该博客介绍了一个Oracle存储过程,用于处理接口表与业务表之间的数据同步。通过游标嵌套,首先检查接口表中的主表记录是否存在于业务主表中,若不存在则插入主表和明细表数据;若存在则更新主表,并根据业务表明细情况更新或插入数据。存储过程涉及到的关键技术包括游标、IF ELSE逻辑判断、MERGE语句以及对主从表的更新和插入操作。

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

今天想要在游标里面嵌套一个游标写个存储过程:

业务逻辑:两个接口表主表明细表;两个业务表主表明细表;

  若接口表主表的关键信息不存在主表中,则插入主表和明细表信息;

 若接口表主表的关键信息已经存在业务主表中,则更新业务主表,再查找业务表明细表,若存在更新,不存在插入;

存储过程使用到:两个游标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,
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值