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
ACOALESCE é mais lenta que NVL em todos os cenários devido à sua conformidade com ANSI SQL.
BCOALESCE retorna o primeiro valor não-NULL de uma lista de argumentos, enquanto NVL está limitada a dois argumentos.
CNVL é padrão ANSI SQL, enquanto COALESCE é específica do Oracle.
DCOALESCE aceita apenas dois argumentos, enquanto NVL aceita múltiplos argumentos.
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.