Sim, certamente se vc está fazendo a leitura com COMMIT parcial (o melhor seria COMMIT por *** TEMPO **, ie, COMMIT a cada X minutos cfrme https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:4951966319022 mas enfim) sim, vc diminui Enormemente a chance de UNDO necessário para consistência do SELCT não estar mais presente, não faz sentido vc além disso fechar e reabrir Cursor.... EVIDENTEMENTE, como eu disse e a esta altura está mais que claro, vc está 'comprando' essa menor chance de ORA-1555 a um ALTO CUSTO para a performance (vide o mesmo link que indiquei) mas tá... Uma Recomendação que eu faria é que vc tenha um DBA *** experiente ** , que tenha usado até o 9i, te ajudando nessa tarefa E que imponha uma mínima Exigência de tamanho de UNDO pros seus clientes, E também de configuração : desde o 9i (9iR2 iirc) já existe ** sim ** a possibilidade de UNDO automático, de UNDO_RETENTION...
Eu ** acho ** que da mesma maneira que outras softhouses exigem X Gbs de RAM , Y Gbs livres em disco, etc, pra usarem seus sistemas, vcs deveriam Pensar nisso também... []s Chiappa OBS : é importante FRISAR que vc só obtém ORA-1555 ** se ** há Outras Transações concorrendo/usando UNDO - pelo que entendi esse script é tipo aplicação de um PATCH (ie, algo EVENTUAL e não-frequente), então nada impede que vcs Exijam dos clientes que eles rodem isso no horário de MENOR concorrência (talvez à noite, tipo), de modo a ter AINDA MAIS UMA camada de segurança contra ORA-1555....