The procedure that is being called (abc.upd_person) has in it a update statement that is updating a table with several thousands of rows. It is doing this within a loop. Something like this:
DECLARE v_sqlcode number; v_sqlerrm varchar2(300); BEGIN abc.upd_person EXCEPTION when OTHERS then v_sqlcode := SQLCODE; v_sqlerrm := SQLERRM; dbms_output.put_line('UPD_PERSON ERROR: '||v_sqlcode||' '||v_sqlerrm); END;
To me it looks like this is where the issue is. It is executing the procedure within the PL/SQL block above, which is updating a table looping through....all while going over a database link.
... ... update lg_person set processed = systimestamp where lg_seq_num = v_sl - - - this is a NUMBER that has a minimum value of a table