Técnico da Receita Estadual - Tecnologia da Informação - Conhecimentos Específicos
O Oracle fornece um comando que é capaz de atualizar, inserir ou remover dados de modo condicional em uma tabela de banco de dados. Trata-se do comando
AIFOPERATION.
BTRUNCATE.
CMERGE.
DIFCONSTRAINT.
EPURGE.
Revelar gabarito e comentário▾
GabaritoC — MERGE.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Comando MERGE no Oracle
Gabarito: letra C. O comando MERGE (também conhecido como upsert) permite realizar, em uma única instrução SQL, operações condicionais de inserção (INSERT), atualização (UPDATE) e, no Oracle, também remoção (DELETE) de registros em uma tabela, combinadas por uma condição de correspondência.
A banca testa o conhecimento sobre o comando MERGE do Oracle. Trata-se de uma instrução SQL padrão (SQL:1999) que consolida múltiplas operações DML em uma única sentença, evitando a necessidade de lógica procedural. O Oracle estendeu o MERGE com a cláusula DELETE para remover linhas que não correspondem à condição.
Comando
Função Principal
Realiza Inserção Condicional?
Realiza Atualização Condicional?
Realiza Remoção Condicional?
É um comando DML ou DDL?
MERGE
Mesclar dados de uma fonte em uma tabela destino com base em condição
Sim (WHEN NOT MATCHED)
Sim (WHEN MATCHED)
Sim (cláusula DELETE WHERE, no Oracle)
DML
IFOPERATION
Inexistente no Oracle
Não
Não
Não
—
TRUNCATE
Remover todas as linhas de uma tabela rapidamente
Não
Não
Sim, mas sem condição (exclusão total)
DDL
IFCONSTRAINT
Inexistente no Oracle
Não
Não
Não
—
PURGE
Remover permanentemente objetos da lixeira (recycle bin)
Não
Não
Sim, mas sem condição (exclusão de objetos)
DDL
Comando MERGE (Oracle)
1Operação condicional (upsert)
WHEN MATCHED → UPDATE
WHEN NOT MATCHED → INSERT
DELETE (extensão Oracle)
2Não é
IFOPERATION (inexistente)
TRUNCATE (DDL, exclusão total)
IFCONSTRAINT (inexistente)
PURGE (DDL, remoção permanente)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
IFOPERATIONnão é um comando SQL válido no Oracle ou em qualquer SGBD relacional. O Oracle não possui uma instrução com esse nome. O conceito de "operação condicional" é atendido pelo MERGE, não por um comando fictício.
Alternativa B — ❌ Incorreta
TRUNCATE é um comando DDL que remove todas as linhas de uma tabela de forma rápida e irreversível (não gera UNDO). Ele não realiza inserção ou atualização condicional. Sua função é exclusivamente de exclusão em massa, sem cláusulas condicionais.
Alternativa C — ✅ Correta ⟵ GABARITO
O MERGE é o comando que "mescla" dados de uma fonte (tabela, visão, subconsulta) em uma tabela destino com base em uma condição de junção. Dependendo do resultado da condição, ele executa:
INSERT quando a linha não existe no destino;
UPDATE quando a linha existe;
(no Oracle) DELETE opcional para linhas atualizadas que satisfaçam outra condição.
Sintaxe resumida:
MERGE INTO tabela_destino d
USING tabela_origem o ON (condição)
WHEN MATCHED THEN UPDATE SET colunas
WHEN NOT MATCHED THEN INSERT (colunas) VALUES (valores);
Com a extensão DELETE WHERE para remoção condicional.
Alternativa D — ❌ Incorreta
IFCONSTRAINTnão existe como comando SQL no Oracle. A palavra "constraint" refere-se a restrições de integridade (PRIMARY KEY, FOREIGN KEY, etc.), mas não há um comando DML com esse nome.
Alternativa E — ❌ Incorreta
PURGE é um comando DDL usado para remover permanentemente objetos (tabelas, índices, etc.) da lixeira (recycle bin) do Oracle. Ele não realiza inserção, atualização ou remoção condicional de dados; apenas elimina objetos descartados.
PEGA ESSA DICA!
Para questões que pedem o comando que faz upsert (INSERT ou UPDATE condicional), lembre-se sempre do MERGE. Ele é o único entre os listados que combina múltiplas operações DML em uma única instrução. TRUNCATE e PURGE são DDL, e IFOPERATION/IFCONSTRAINT são meros distratores.