Normally broken links generated when files are deleted and REP_ATTACHMENTS has pointers to non-existing files.
Change of OID cannot happen. Is there any chance that you have a typo in your query?
Run these two queries:
select count (*) from ITSM_SERVICECALLS where SER_ATTACHMENT_EXISTS=1
select distinct ser.ser_id from rep_attachments ahs inner join itsm_servicecalls ser on ahs.ahs_att_oid=ser.ser_oid where ahs.ahs_ent_oid = (select ent_oid from ifc_entities where ent_name='Service Call')
The number of the rows returned should be the same.
If the numbers match so must be the OIDS. To see that just run this query:
selectpro_oid from ITSM_problems where pro_ATTACHMENT_EXISTS=1 and pro_oid not in ( select pro.pro_oid from rep_attachments ahs inner join itsm_problems pro on ahs.ahs_att_oid=pro.pro_oid where ahs.ahs_ent_oid = (select ent_oid from ifc_entities where ent_name='Problem') )