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) swvsql

2. 須要作下面更新

ctri.related_id = bp.part_id 變爲 ctri.related_id = swv.wp_vnno_idcode

3. oarcle sql語句以下(使用遊標) 來實現:

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

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;sql語句

相關文章
相關標籤/搜索