Oracle MERGE命令

具体来说,MERGE语句会检查原数据表记录和目标表记录。如果记录在原数据表和目标表中均存在,则目标表中的记录将被原数据表中的记录所更新(执行Update操作);如果目标表中不存在的某(些)记录,在原数据表中存在,则原数据表的这(些)记录将被插入到目标表中(执行Insert操作)。

"merge into exam_date_set  using (select ? id from dual) b " +
                "on (exam_date_set.academyId=b.id) " +
                "when matched then  " +
                "update set exam_date_set.examStartDate=to_date(?,'YYYY-MM-DD HH24:MI:SS'),exam_date_set.examEndDate=to_date(?,'YYYY-MM-DD HH24:MI:SS')," +
                "exam_date_set.deadline=to_date(?,'YYYY-MM-DD HH24:MI:SS') " +
                "when not matched then " +
                "insert(exam_date_set.academyId,exam_date_set.examStartDate,exam_date_set.examEndDate,exam_date_set.deadline) " +
                "values(?,to_date(?,'YYYY-MM-DD HH24:MI:SS'),to_date(?,'YYYY-MM-DD HH24:MI:SS'),to_date(?,'YYYY-MM-DD HH24:MI:SS'))";
       

原文地址:https://www.cnblogs.com/ningvsban/p/2762783.html