MERGE INTO STANDARD_DOC_INFO T USING DUAL ON ( T.OBJID = #{objid}) WHEN MATCHED THEN UPDATE SET T.CATEGORY_OBJID = #{categoryObjid}, T.DOC_NO = #{docNo}, T.DOC_NAME = #{docName}, T.PRODUCT_GROUP_OBJID = #{productFamily}, T.PRODUCT_OBJID = #{product}, T.CAR_OBJID = #{car}, T.GRADE_OBJID = #{grade}, T.COMPATITION_CAR_NAME = #{compatitionCar}, T.OEM_OBJID = #{oem}, T.COMPANY_OBJID = #{compete}, T.STANDARD_NAME = #{standardName}, T.DESCRIPTION = #{description}, T.CHANGE_HISTORY = #{changeHistory}, T.STEP = #{step}, T.REV = #{revision}, T.REVISION_ORDER = #{revisionOrder}, T.EO_NO = #{eoNo}, T.IS_LAST = #{isLast}, T.SPEC_NO = #{specNo} WHEN NOT MATCHED THEN INSERT ( T.OBJID, T.CATEGORY_OBJID, T.DOC_NO, T.DOC_NAME, T.PRODUCT_GROUP_OBJID, T.PRODUCT_OBJID, T.CAR_OBJID, T.GRADE_OBJID, T.COMPATITION_CAR_NAME, T.COMPANY_OBJID, T.OEM_OBJID, T.STANDARD_NAME, T.DESCRIPTION, T.CHANGE_HISTORY, T.STEP, T.REV, T.REVISION_ORDER, T.EO_NO, T.ESTABLISH_DATE, T.REVISION_DATE, T.IS_LAST, T.WRITER, T.REGDATE, T.STATUS, T.SPEC_NO ) VALUES ( #{objid}, #{categoryObjid}, #{docNo}, #{docName}, #{productFamily}, #{product}, #{car}, #{grade}, #{compatitionCar}, #{compete}, #{oem}, #{standardName}, #{description}, #{changeHistory}, #{step}, #{revision}, #{revisionOrder}, #{eoNo}, TO_DATE(#{establishDate}), TO_DATE(#{revisionDate}), #{isLast}, #{writer}, SYSDATE, #{status}, #{specNo} ) INSERT INTO STANDARD_DOC_INFO ( CAR_OBJID, CATEGORY_OBJID, CHANGE_HISTORY, COMPANY_OBJID, COMPATITION_CAR_NAME, COMPETE_COMPANY_OBJID, DESCRIPTION, DOC_NAME, DOC_NO, GRADE_OBJID, IS_LAST, OBJID, OEM_OBJID, PRODUCT_GROUP_OBJID, PRODUCT_OBJID, REGDATE, REV, REVISION_DATE, SPEC_NO, STANDARD_NAME, STATUS, STEP, WRITER ) SELECT CAR_OBJID, CATEGORY_OBJID, CHANGE_HISTORY, COMPANY_OBJID, COMPATITION_CAR_NAME, COMPETE_COMPANY_OBJID, DESCRIPTION, DOC_NAME, DOC_NO, GRADE_OBJID, '1' IS_LAST, #{objid} OBJID, OEM_OBJID, PRODUCT_GROUP_OBJID, PRODUCT_OBJID, SYSDATE REGDATE, #{revision} REV, SYSDATE REVISION_DATE, SPEC_NO, STANDARD_NAME, STATUS, STEP, WRITER FROM STANDARD_DOC_INFO WHERE OBJID = #{oldObjid} UPDATE STANDARD_DOC_INFO SET IS_LAST = '0' WHERE OBJID = #{objid} MERGE INTO SPEC_LINK_INFO T USING DUAL ON (AFTER_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}) AND BEFORE_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{fromObjid})) WHEN NOT MATCHED THEN INSERT ( T.OBJID, T.AFTER_SPEC_NO, T.BEFORE_SPEC_NO, T.CATEGORY_OBJID, T.REGDATE ) VALUES ( #{objid}, (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}), (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{fromObjid}), #{categoryObjId}, SYSDATE ) DELETE SPEC_LINK_INFO WHERE CATEGORY_OBJID = #{categoryObjId} AND AFTER_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}) MERGE INTO SPEC_LINK_INFO T USING DUAL ON (AFTER_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{toObjid}) AND BEFORE_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid})) WHEN NOT MATCHED THEN INSERT ( T.OBJID, T.AFTER_SPEC_NO, T.BEFORE_SPEC_NO, T.CATEGORY_OBJID, T.REGDATE ) VALUES ( #{objid}, (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{toObjid}), (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}), #{categoryObjId}, SYSDATE ) DELETE SPEC_LINK_INFO WHERE CATEGORY_OBJID = #{categoryObjId} AND BEFORE_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid})