INSERT INTO ATTACH_FILE_INFO( OBJID , TARGET_OBJID , PARENT_TARGET_OBJID , SAVED_FILE_NAME , REAL_FILE_NAME , DOC_TYPE , DOC_TYPE_NAME , FILE_SIZE , FILE_EXT , FILE_PATH , WRITER , REGDATE , STATUS ) VALUES ( ${objId}::integer , #{targetObjId} , #{parentTargetObjId} , #{savedFileName} , #{realFileName} , #{docType} , #{docTypeName} , ${fileSize} , #{fileExt} , #{filePath} , #{writer} , now() , 'Active' ) UPDATE ATTACH_FILE_INFO SET STATUS = 'Deleted' WHERE 1=1 AND 1=2 AND OBJID = ${objId} AND TARGET_OBJID = #{targetObjId} AND DOC_TYPE = #{docType} DELETE FROM ATTACH_FILE_INFO WHERE 1=1 AND OBJID = ${objId} AND TARGET_OBJID = #{targetObjId} AND DOC_TYPE = #{docType} INSERT INTO FILE_DOWN_LOG( OBJID , LOG_TIME , SYSTEM_NAME , USER_ID , FILE_OBJID , REMOTE_ADDR ) VALUES ( #{objId}::integer , now() , #{systemName} , #{userId} , #{fileObjId}::integer , #{remoteAddr} ) MERGE INTO ATTACH_FILE_INFO USING DUAL ON (TARGET_OBJID = #{targetObjId} AND DOC_TYPE = #{docType}) WHEN MATCHED THEN UPDATE SET REGDATE = SYSDATE, WRITER = #{writer} WHEN NOT MATCHED THEN INSERT (OBJID, TARGET_OBJID, SAVED_FILE_NAME, REAL_FILE_NAME, DOC_TYPE, DOC_TYPE_NAME, FILE_EXT, FILE_PATH, WRITER, REGDATE, STATUS) VALUES ( #{objId} , #{targetObjId} , #{savedFileName} , #{realFileName} , #{docType} , #{docTypeName} , #{fileExt} , #{filePath} , #{writer} , SYSDATE , 'Active' )