

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Em um sistema corporativo executado sobre Oracle Database, a equipe de desenvolvimento implementou uma rotina em PL/SQL para registrar auditoria de alterações em uma tabela crítica. A rotina deveria gravar informações em uma tabela de log mesmo quando a transação principal fosse posteriormente desfeita por erro de regra de negócio. Durante a revisão técnica, discutiu-se o uso de blocos PL/SQL, tratamento de exceções, controle transacional e possíveis efeitos colaterais de commits dentro de rotinas chamadas por outras transações. De acordo com o caso, é CORRETO afirmar que:
Um bloco PL/SQL não pode conter comandos SQL de manipulação de dados, pois sua finalidade é apenas controlar fluxo procedural, cabendo exclusivamente ao SQL externo executar INSERT, UPDATE e DELETE.
O uso de COMMIT dentro de qualquer procedure PL/SQL é sempre recomendado para garantir atomicidade, pois impede que erros posteriores da aplicação desfaçam alterações já validadas no mesmo contexto transacional.
O tratamento de exceções em PL/SQL desfaz automaticamente todas as alterações realizadas no bloco, mesmo sem comando explícito de ROLLBACK, pois toda exceção provoca reversão integral da sessão corrente.
Uma transação autônoma pode ser utilizada em PL/SQL para registrar informações de auditoria com controle transacional independente da transação chamadora, mas seu uso exige cautela para não comprometer consistência lógica, rastreabilidade e semântica esperada da operação principal.