Oracle 关联更新

  1. 场景如下:

COMM_TASK_RELATED_INFO(TASK_TYPE_ID,RELATED_ID) ctri, BOM_PARTS(PAET_ID,MOLD_NO,PART_NO,PROCESS_OBJECT) bp, SCH_WP_VNNO(WP_VNNO_ID,MOLD_NO,PART_NO,PROCESS_OBJECT) swv


2. 需要做下面更新

ctri.related_id = bp.part_id 变为 ctri.related_id = swv.wp_vnno_id


3. oarcle sql语句如下(使用游标) 来实现:

/* Formatted on 2017/3/25 11:57:03 (QP5 v5.256.13226.35510) */ SET SERVEROUTPUT ON

DECLARE CURSOR task_relate_id_cur IS SELECT CTRI.TASK_RELATED_ID,SWV.WP_VNNO_ID FROM bom_parts bp, comm_task_related_info ctri,SCH_WP_VNNO swv WHERE BP.PART_ID = CTRI.RELATED_ID and BP.MOLD_NO = SWV.MOLD_NO and BP.PART_NO = SWV.PART_NO and BP.PROCESS_OBJECT = SWV.PROCESS_OBJECT and BP.VALID_STATUS = '1' and BP.CANCEL_FLAG='0'; BEGIN FOR my_cur IN task_relate_id_cur LOOP UPDATE comm_task_related_info TRI SET TRI.RELATED_ID = my_cur.WP_VNNO_ID WHERE TRI.TASK_RELATED_ID = my_cur.TASK_RELATED_ID; END LOOP; END;

转载于:https://my.oschina.net/u/2611678/blog/867304

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值