Unanswered: set transaction isolation level serializable
Would issuing SET TRANSACTION ISOLATION LEVEL SERIALIZABLE be a way of preventing a given group of statements to run through a "snapshot too old" exception ? In other words, my question is: if the problem is that the whole procedure or transaction wasn't able to recover the rollback segment of a datablock that was changed after the beginning of the first statement of this procedure/transaction - knowing that the result will not actually reflect the new reality of the database, if simply avoiding the "snapshot too old" exception would satisfy the user, would it be a way to get around the message ?
No, setting a transaction SERIALIZABLE can indeed introduce more ORA-01555. When you set a transaction SERIALIZABLE, you're basically telling Oracle that every statement at the point in time you set it, will see the data as that time. This will make Oracle look more for undo segments that belong to possible changed data blocks.
The way to get around this message is to size the UNDO accordingly.