← Oracle Database SQL: consultas e operação
05 / 8 · 50 MIN

DML, transações e retoma

Identifica fronteiras de confirmação antes de corrigir ou repetir uma carga.

Conceito e mecanismo

Uma transação reúne alterações até COMMIT ou ROLLBACK. SAVEPOINT permite desfazer trabalho posterior mantendo alterações anteriores pendentes. Um statement DML simples tem atomicidade própria: se falhar por constraint, as suas alterações são desfeitas, sem implicar rollback universal de statements anteriores. Modos especiais como error logging precisam de análise separada. DDL em tabelas permanentes introduz outra fronteira: Oracle faz commit antes de DDL sintaticamente válido, mesmo quando depois falha, e após DDL concluído com sucesso. Por isso, um script com UPDATE, DDL falhado e ROLLBACK pode conservar o UPDATE. O plano de mudança deve refletir estas regras, não apenas a última linha do script.

Aplicação guiada

Numa carga fictícia por blocos, identifica lotes confirmados antes de reprocessar. MERGE não é um deduplicador de negócio: duas linhas de origem não devem tentar atualizar a mesma linha alvo no mesmo statement. Resolve a chave e a precedência dos valores antes de executar. TRUNCATE de tabela permanente não é um DELETE que possa ser desfeito com rollback; exige recuperação preparada. Em READ COMMITTED, cada consulta pode observar um snapshot confirmado diferente. Dois totais obtidos em momentos distintos podem refletir commits concorrentes, sem leitura suja. Para um fecho consistente, combina desenho de transação, contrato da aplicação e coordenação com o DBA. Não declares uma carga recuperada apenas porque uma repetição terminou sem erro.

NA PRÁTICA

UPDATE A; SAVEPOINT s; UPDATE B; ROLLBACK TO s; deixa A pendente e desfaz B, sem confirmar A.

Armadilhas comuns

Erro como rollback total; DDL falhado como ausência de commit; MERGE como seleção de vencedor; retry como idempotência.

Tópicos relacionados: Modelo, SELECT e população do resultado · Funções, conversões e contratos de dados · Joins, granularidade e agregação

Leva esta ideia contigo

Recupera a partir do estado confirmado e de uma regra explícita de reconciliação.

Criar conta

Referência: Transactions and implicit DDL commits · 1Z0-071 public objectives inspected 2026-09-30; revision date not published

Oracle® é uma marca registada da Oracle e/ou das suas afiliadas. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por Oracle. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.