具体来说,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'))";