For example, let's say while a quarterly batch transaction is updating hundreds of records across dozens of tables, including the accounts receivable table, a customer service rep has begun updating a customer's balance due. If the batch transaction (which began before the customer service rep began his session) is trying to update the same record that has just been modified in the context of a different transaction (the customer service rep's transaction), then Oracle Database turns to the undo segment to recall the state of that record at the time the batch transaction began, to ensure read consistency for that transaction. If that section of the undo data has already been overwritten, the "ORA-1555: snapshot too old" error occurs, and the transaction cannot complete.