Questão de Banco de Dados — PL-SQL — FCC 2018
- Código
- fc044249
- Banca
- FCC
- Órgão
- DPE-AM
- Ano
- 2018
- Cargo
- Analista em Gestão Especializado de Defensoria - Analista de Sistema
- A(+)
- BEXTERNAL JOIN
- C(#)
- DEXT
- EWITH EXT OPTION
GabaritoA — (+)
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) |
| Não é operador reconhecido | Não | Não |
| Sem significado para joins | Não | Não |
| Não é operador reconhecido | Não | Não |
| Não é operador de join | Não | Não |
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.
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 (+).
(#) não é operador de junção no Oracle. Não há significado especial para # em condições de join.
EXT não é um operador reconhecido. Pode gerar confusão com external, mas não corresponde a nenhuma sintaxe de outer join.
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