Questão nº 33

Questão de Banco de Dados · FCC TST 2017 (nº 33)

FCC2017Analista Judiciário - Análise de SistemasBanco de Dados
Gabarito: Dver comentário ↓

Para atualizar as linhas da tabela `backup_employees` de forma que corresponda à tabela `employees`, um Analista de Sistemas utilizou a instrução abaixo em um banco de dados Oracle aberto e em condições ideais.

```sql
MERGE INTO backup_employees bac
```

I

```sql
(SELECT FROM employees) emp
ON (bac.employee_id = emp.employee_id)
```

II

```sql
UPDATE SET
bac.name = emp.name,
bac.job_id = emp.job_id,
bac.salary = emp.salary
1.5,
bac.commission = emp.commission,
DELETE WHERE (emp.commission IS NOT NULL)
```

III

```sql
INSERT VALUES(emp.employee_id, emp.name, emp.job_id,
emp.salary, emp.commission);
```

Para que a sintaxe da instrução esteja correta, as lacunas I, II e III devem ser preenchidas, correta e respectivamente, por

Resposta comentada

Gabarito Alternativa D

O comando MERGE no SQL Oracle é uma ferramenta poderosa que permite sincronizar dados entre duas tabelas (uma de destino e uma de origem) em uma única instrução, realizando operações de inserção, atualização e/ou exclusão com base em condições de correspondência.

  • (A) Incorreta: WITH é usado para definir Common Table Expressions (CTEs), não para especificar a fonte do MERGE. WHEN FOUND THEN e WHEN NOT FOUND THEN não são a sintaxe correta para as cláusulas de correspondência do MERGE.
  • (B) Incorreta: FROM é usado em SELECT e outras cláusulas para especificar tabelas, mas não para a fonte do MERGE. IF FOUND THEN e ELSE não são a sintaxe correta para as cláusulas de correspondência do MERGE.
  • (C) Incorreta: WITH está incorreto. IF MATCHED THEN e OTHERWISE não são a sintaxe correta para as cláusulas de correspondência do MERGE.
  • (D) Correta: USING é a palavra-chave correta para especificar a tabela ou subconsulta de origem que será comparada com a tabela de destino. WHEN MATCHED THEN é a cláusula usada para definir as ações (UPDATE e/ou DELETE) quando uma linha da tabela de origem encontra uma correspondência na tabela de destino. WHEN NOT MATCHED THEN é a cláusula usada para definir as ações (INSERT) quando uma linha da tabela de origem não encontra correspondência na tabela de destino.
  • (E) Incorreta: USING está correto, mas IF FOUND THEN e IF NOT FOUND THEN não são a sintaxe correta para as cláusulas de correspondência do MERGE. A armadilha aqui é que IF FOUND é uma construção comum em outras linguagens ou contextos de banco de dados, mas não no MERGE do Oracle.

Fonte: FCC TST 2017 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho