Pular para o conteúdo principal

Questão de Banco de Dados — DW - Data Warehouse — FCC 2016

Banco de DadosDW - Data Warehouse
Código
fc033353
Banca
FCC
Órgão
TRT - 14ª Região (RO e AC)
Ano
2016
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação
No Oracle 11g há uma instrução que permite atualizar, inserir ou remover linhas condicionalmente em uma tabela, evitando o uso de várias instruções DML. Esta instrução é especialmente útil nas aplicações em ambientes de Data Warehouse, nas quais é preciso trabalhar com dados provenientes de várias origens. Trata-se da instrução
  1. ASWITCH.
  2. BTRUNCATE.
  3. CMERGE.
  4. DIFCOMMAND.
  5. EEXEC.
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”.

Banco de Dados - Comando MERGE (Upsert)

Gabarito: letra C. A instrução MERGE (também conhecida como upsert) é um comando DML do padrão SQL que permite inserir, atualizar ou excluir linhas condicionalmente em uma única operação, com base em uma condição de junção. É amplamente utilizado em ambientes de Data Warehouse para sincronizar tabelas com dados de múltiplas origens, evitando o uso de várias instruções DML separadas.

A banca cobra o conhecimento de comandos SQL específicos para manipulação condicional de dados. O MERGE é a ferramenta ideal para cenários onde se precisa aplicar lógica de "se existe, atualize; senão, insira" (e eventualmente excluir), comum em processos ETL.

MERGE (Upsert)
  • 1Comando DML
  • 2Única instrução
    • Condição de junção (ON)
    • WHEN MATCHED
      • UPDATE
      • DELETE
    • WHEN NOT MATCHED
      • INSERT
  • 3Aplicação
    • Data Warehouse / ETL
    • Sincronizar tabelas
    • Múltiplas origens
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

SWITCH não é um comando SQL padrão para manipulação de dados. Em alguns bancos de dados, pode existir como palavra reservada para outros fins, mas não atende à funcionalidade descrita.

Alternativa B — ❌ Incorreta

TRUNCATE é um comando DDL que remove todas as linhas de uma tabela de forma rápida e irreversível (dependendo do SGBD). Não permite lógica condicional nem operação seletiva, sendo inadequado para o cenário proposto.

Alternativa C — ✅ Correta ⟵ GABARITO

O comando MERGE combina operações de INSERT, UPDATE e DELETE condicionais em uma única instrução, baseando-se na comparação entre a fonte e o destino. No Oracle 11g, a sintaxe típica é:

MERGE INTO tabela_destino d
USING tabela_origem o ON (condição)
WHEN MATCHED THEN UPDATE SET ...
WHEN NOT MATCHED THEN INSERT ...

Pode-se também incluir a cláusula WHEN MATCHED THEN DELETE, desde que no mesmo conjunto. Isso reduz a quantidade de instruções DML e otimiza a performance em operações de Data Warehouse.

Alternativa D — ❌ Incorreta

IFCOMMAND não existe como comando SQL no Oracle 11g (ou em qualquer banco relacional padrão). Não é uma instrução DML.

Alternativa E — ❌ Incorreta

EXEC (ou EXECUTE) é utilizado para executar procedimentos armazenados ou funções, não para manipular dados diretamente com lógica condicional. Não realiza operações DML por si só.

PEGA ESSA DICA!

Em questões sobre Data Warehouse e SQL, lembre-se que o MERGE é o comando coringa para operações de upsert e sincronização. É um dos tópicos mais cobrados em provas de Banco de Dados, especialmente da FCC.

Gabarito: letra C.

Link permanente: /questoes/fc033353