Pular para o conteúdo principal

Questão de Banco de Dados — PL-SQL — FCC 2018

Banco de DadosPL-SQL
Código
fc044249
Banca
FCC
Órgão
DPE-AM
Ano
2018
Cargo
Analista em Gestão Especializado de Defensoria - Analista de Sistema
Considere a instrução PL/SQL abaixo, digitada no Oracle, no qual as tabelas com os respectivos campos existem em condições ideais.SELECT f.nome_funcionario, f.id_departamento, d.nome_departamento FROM funcionarios f,departamentos d WHERE f.id_departamento = d.id_departamento ...I... ;Para que a consulta recupere todas as linhas da tabela funcionarios, mesmo que não haja correspondência na tabela departamentos, a lacuna I deve ser preenchida com o operador de join externa
  1. A(+)
  2. BEXTERNAL JOIN
  3. C(#)
  4. DEXT
  5. EWITH EXT OPTION
Revelar gabarito e comentário

GabaritoA — (+)

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”.

PL/SQL – Operador de Join Externo no Oracle

Gabarito: letra A. No Oracle, o operador (+) é a sintaxe clássica para realizar um outer join (junção externa). Colocado na condição WHERE do lado da tabela que pode não ter correspondência, ele faz com que todas as linhas da tabela oposta sejam retornadas mesmo sem match. No enunciado, para recuperar todas as linhas de funcionarios mesmo sem correspondência em departamentos, o operador deve ser colocado do lado da tabela departamentos: WHERE f.id_departamento = d.id_departamento(+).

Operador

Função no Oracle

Corresponde a Outer Join?

Sintaxe Válida?

(+)

Indica outer join no lado da tabela sem correspondência

Sim

Sim (proprietária Oracle)

EXTERNAL JOIN

Não é operador reconhecido

Não

Não

(#)

Sem significado para joins

Não

Não

EXT

Não é operador reconhecido

Não

Não

WITH EXT OPTION

Não é operador de join

Não

Não

Alternativa A — ✅ Correta ⟵ GABARITO

O operador (+) é a notação de outer join proprietária do Oracle (anterior ao padrão ANSI SQL-92). Colocado ao lado da coluna da tabela que pode ter valores nulos, garante que a consulta retorne todas as linhas da tabela do outro lado da condição.

Alternativa B — ❌ Incorreta

EXTERNAL JOIN não é um operador válido na sintaxe PL/SQL do Oracle. O termo correto é OUTER JOIN, mas mesmo a palavra completa não é usada como operador condicional; a sintaxe própria é o (+).

Alternativa C — ❌ Incorreta

(#) não é operador de junção no Oracle. Não há significado especial para # em condições de join.

Alternativa D — ❌ Incorreta

EXT não é um operador reconhecido. Pode gerar confusão com external, mas não corresponde a nenhuma sintaxe de outer join.

Alternativa E — ❌ Incorreta

WITH EXT OPTION não é um operador. With option não faz parte da sintaxe de join; além disso, a cláusula WITH tem outra finalidade (subconsultas fatoradas, CTE).

Gabarito: letra A

Link permanente: /questoes/fc044249