Another reason that might cause ora-01555 to happen on rollback segment YYL_RB while we have explicitly set the transaction so that it will use the rollback segment XXL_RB can be explained by the beginning and the end of a transaction. When using the following command:
SET TRANSACTION USE ROLLBACK SEGMENT XXL_RB;
We have to ensure that this command is the first instruction of the transaction. Otherwise we will get the following error:
ORA-01453: SET TRANSACTION must be first statement of transaction
The question we have to ask is: when the transaction finishes? The transaction finishes when a commit or a rollback is issued. Thus, if you set your transaction to use rollback segment xxl_rb be aware that when you commit or you rollback, your transaction has finished and is no longer instructed to use xxl_rb rollback segment for its redo/undo. Be aware also that any DDL issued in your transaction such as truncate table marks the transaction as finished.