Une transaction démarre implicitement à la première instruction SQL qui écrit dans la base et se termine par COMMIT: s'il y a plusieurs COMMIT, il y a donc plusieurs transactions. Et l'instruction
SET transaction USE rollback segment ...
doit être répétée à chaque début de transaction si la transaction doit utiliser ce rollback segment en particulier. Il n'y aucun lien entre le "BEGIN" PL/SQL et le début de transaction.
En général le rollback segment SYSTEM est utilisé par Oracle dans des cas très particulier et non par des transactions applicatives. S'il n'y a pas de rollback segment spécifié pour une transaction, Oracle en choisit un en fonction de critères internes comme "choisir le plus rollback segment qui a le moins de transactions en cours".
Partager