Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FCC 2025

Banco de DadosOracle
Código
fc150353
Banca
FCC
Órgão
MPE PI
Ano
2025
Cargo
Ana Min ( )
No Oracle Database 21c, as funções COALESCE e NVL são usadas para substituir valores NULL em consultas SQL. Uma diferença fundamental entre elas é que a
  1. ACOALESCE é mais lenta que NVL em todos os cenários devido à sua conformidade com ANSI SQL.
  2. BCOALESCE retorna o primeiro valor não-NULL de uma lista de argumentos, enquanto NVL está limitada a dois argumentos.
  3. CNVL é padrão ANSI SQL, enquanto COALESCE é específica do Oracle.
  4. DCOALESCE aceita apenas dois argumentos, enquanto NVL aceita múltiplos argumentos.
  5. ENVL suporta expressões complexas, enquanto COALESCE aceita apenas colunas simples.
Revelar gabarito e comentário

GabaritoB — COALESCE retorna o primeiro valor não-NULL de uma lista de argumentos, enquanto NVL está limitada a dois argumentos.

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

Funções COALESCE e NVL no Oracle Database

Gabarito: letra B. A diferença fundamental é que COALESCE aceita uma lista de múltiplos argumentos e retorna o primeiro valor não-NULL, enquanto NVL está limitada a exatamente dois argumentos. Essa é a distinção central entre as duas funções de tratamento de NULL no Oracle.

As funções COALESCE e NVL são utilizadas para substituir valores NULL em consultas SQL, mas possuem diferenças importantes. A NVL é uma função específica do Oracle que recebe exatamente dois argumentos: se o primeiro for NULL, retorna o segundo; caso contrário, retorna o primeiro. Já a COALESCE é uma função padrão ANSI SQL que aceita uma lista de argumentos e retorna o primeiro valor não-NULL da lista. Essa diferença na quantidade de argumentos é a principal distinção entre elas.

Na prática, a NVL é mais simples e direta, enquanto a COALESCE é mais flexível, permitindo encadear múltiplas alternativas. Por exemplo, NVL(coluna, 'valor_padrao') substitui NULL por 'valor_padrao', mas se precisar de uma cadeia de substituições, como COALESCE(coluna1, coluna2, 'valor_padrao'), a COALESCE é a escolha adequada. A COALESCE também é mais alinhada ao padrão ANSI SQL, o que facilita a portabilidade entre diferentes SGBDs.

A banca explora a confusão entre as duas funções, especialmente em relação à quantidade de argumentos e à conformidade com padrões. É comum que candidatos confundam qual função é padrão ANSI e qual é específica do Oracle, ou invertam a capacidade de argumentos. A pegadinha aqui é justamente essa inversão: a alternativa D afirma que COALESCE aceita apenas dois argumentos, quando na verdade é a NVL que tem essa limitação.

Guarde a fronteira: NVL = 2 argumentos (Oracle); COALESCE = múltiplos argumentos (ANSI SQL). É exatamente nessa distinção que as alternativas se dividem.

Critério

COALESCE

NVL

Número de argumentos

Múltiplos (lista)

Exatamente dois

Padrão

ANSI SQL

Específica do Oracle

Retorno

Primeiro valor não-NULL da lista

Primeiro argumento se não-NULL; caso contrário, segundo argumento

Funções de NULL no Oracle
  • 1NVL (específica do Oracle)
    • 2 argumentos
    • 1º NULL → retorna 2º
  • 2COALESCE (padrão ANSI)
    • Múltiplos argumentos
    • Retorna 1º não-NULL
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que COALESCE é mais lenta que NVL em todos os cenários devido à conformidade com ANSI SQL. Não há fundamento técnico para essa afirmação. O desempenho pode variar conforme o contexto, mas não é uma regra geral. A conformidade com ANSI SQL não implica necessariamente em lentidão.

Alternativa B — ✅ Correta ⟵ GABARITO

A alternativa está correta ao afirmar que COALESCE retorna o primeiro valor não-NULL de uma lista de argumentos, enquanto NVL está limitada a dois argumentos. Essa é a diferença fundamental entre as duas funções.

Alternativa C — ❌ Incorreta

Inverte a conformidade com padrões. Na verdade, COALESCE é a função padrão ANSI SQL, enquanto NVL é específica do Oracle. A alternativa troca os papéis.

Alternativa D — ❌ Incorreta

Inverte a capacidade de argumentos. COALESCE aceita múltiplos argumentos, enquanto NVL aceita apenas dois. A alternativa afirma o oposto.

Alternativa E — ❌ Incorreta

Afirma que NVL suporta expressões complexas, enquanto COALESCE aceita apenas colunas simples. Ambas as funções podem aceitar expressões complexas, não há essa limitação para COALESCE.

Gabarito: letra B

Link permanente: /questoes/fc150353