select ob.obj_id, ob.bom_code, ob.material_code, bm.material_name, bm.MATERIAL_SUBCLASS material_type, ob.standard_amount, ob.parent_id, mp.MATERIAL_NAME parentName, mp.MATERIAL_SUBCLASS parentMaterialType, ob.is_flag, ob.created_by, ob.created_time, ob.updated_by, ob.updated_time, ob.factory_code, ob.sort, ob.ancestors, ob.vbeln, ob.vbpos from order_bominfo ob LEFT JOIN BASE_MATERIALINFO bm ON bm.MATERIAL_CODE = ob.material_code LEFT JOIN BASE_MATERIALINFO mp ON mp.MATERIAL_CODE = ob.PARENT_ID SELECT seq_order_bominfo.NEXTVAL as objId FROM DUAL insert into order_bominfo obj_id, bom_code, material_code, material_name, material_type, standard_amount, parent_id, is_flag, created_by, created_time, updated_by, updated_time, factory_code, sort, vbeln, vbpos, ancestors, #{objId}, #{bomCode}, #{materialCode}, #{materialName,jdbcType=NVARCHAR}, #{materialType}, #{standardAmount}, #{parentId}, #{isFlag}, #{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}, #{factoryCode}, #{sort}, #{vbeln}, #{vbpos}, #{ancestors}, update order_bominfo bom_code = #{bomCode}, material_code = #{materialCode}, material_name = #{materialName,jdbcType=NVARCHAR}, material_type = #{materialType}, standard_amount = #{standardAmount}, parent_id = #{parentId}, is_flag = #{isFlag}, created_by = #{createdBy}, created_time = #{createdTime}, updated_by = #{updatedBy}, updated_time = #{updatedTime}, factory_code = #{factoryCode}, sort = #{sort}, vbeln = #{vbeln}, vbpos = #{vbpos}, ancestors = #{ancestors}, where obj_id = #{objId} delete from order_bominfo where obj_id = #{objId} delete from order_bominfo where obj_id in #{objId} update order_bominfo set ancestors = when #{item.materialCode} then #{item.ancestors} where material_code in #{item.materialCode}