Considere a expressão PL/SQL de um banco de dados Oracle 19 aberto e funcionando em condições ideais:CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 ENDA função equivalente a essa expressão é:
ACOALESCE(expr1, expr2)
BCHR(expr1, expr2)
CCOMPOSE(expr1, expr2)
DCOLLATION(expr1, expr2)
ECOLLECT(expr1, expr2)
Revelar gabarito e comentário▾
GabaritoA — COALESCE(expr1, expr2)
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: Funções de tratamento de nulos
Gabarito: letra A. A função COALESCE(expr1, expr2) retorna o primeiro argumento não nulo. Isso é exatamente o que a expressão CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END faz — se expr1 não for nulo, retorna expr1; caso contrário, retorna expr2. Portanto, a alternativa A é a correta.
A questão testa o conhecimento das funções nativas do Oracle para manipulação de valores nulos. A banca espera que o candidato reconheça o comportamento da função COALESCE, que é uma das funções mais comuns em SQL e PL/SQL para substituir CASE em casos simples de verificação de nulo.
Alternativa A — ✅ Correta ⟵ GABARITO
COALESCE é uma função de nível de SQL padrão (e Oracle) que retorna o primeiro valor não nulo da lista de argumentos. A implementação exata faz exatamente o mesmo que a expressão CASE fornecida: COALESCE(expr1, expr2) = CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END. É a equivalência direta.
Alternativa B — ❌ Incorreta
A função CHR é usada para converter um código ASCII em caractere. Exemplo: CHR(65) retorna 'A'. Não tem qualquer relação com verificação de nulos.
Alternativa C — ❌ Incorreta
COMPOSE é uma função usada para compor uma string Unicode a partir de uma sequência de caracteres. Por exemplo, COMPOSE('A' || UNISTR('\0300')) gera 'À'. Não é equivalente ao CASE.
Alternativa D — ❌ Incorreta
COLLATION retorna uma string de collation (ordenação) de um argumento. Exemplo: COLLATION('abc') retorna o collation da sessão. Nada a ver com tratamento de nulos.
Alternativa E — ❌ Incorreta
COLLECT é uma função de agregação que coleta valores em uma coleção (como um array). Não serve para substituir o CASE com verificação de nulo.
NÃO CAIA NESSA!
A banca lista funções com prefixo "CO" (COALESCE, CHR, COMPOSE, COLLATION, COLLECT) para confundir: o candidato que não conhece bem as funções pode achar que todas são variações de funções de agregação ou manipulação. A chave é lembrar que COALESCE é a única que lida com valores nulos (NULL-handling). Decore o significado de cada uma: COALESCE = "crescer juntos" (primeiro não nulo); CHR = caracter; COMPOSE = combinar caracteres; COLLATION = ordenação; COLLECT = coleção.