Considere a expressão PL/SQL de um banco de dados Oracle 19 ...

Próximas questões
Com base no mesmo assunto
Q2098311 Banco de Dados
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 END
A função equivalente a essa expressão é:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A - COALESCE(expr1, expr2)

Para compreender o tema dessa questão, é importante conhecer a expressão CASE e a função COALESCE no contexto do PL/SQL, a linguagem procedural da Oracle. A expressão CASE é uma estrutura condicional que permite executar diferentes ações com base nas condições especificadas. O funcionamento é semelhante a um if-else em outras linguagens de programação. A expressão apresentada na questão verifica se expr1 não é nula e, se for verdadeiro, retorna expr1; caso contrário, retorna expr2.

A função COALESCE, por outro lado, é uma função que recebe uma lista de argumentos e retorna o primeiro valor não nulo na lista. Se todos os valores forem nulos, a função retornará nulo. Em outras palavras, ela faz uma verificação sequencial nos argumentos fornecidos até encontrar um que não seja nulo e o retorna.

A razão pela qual a Alternativa A é a correta está no fato de que COALESCE(expr1, expr2) efetivamente realiza a mesma operação descrita pela expressão CASE na questão. Se expr1 não for nulo, expr1 será retornado, e se for nulo, expr2 será retornado, exatamente como a expressão CASE faz.

As outras alternativas são funções que realizam operações distintas e não são equivalentes à expressão CASE apresentada:

  • B - CHR: Converte um número na tabela de códigos de caracteres para um caractere.
  • C - COMPOSE: Monta uma string de caracteres Unicode baseada na sequência de elementos Unicode fornecida.
  • D - COLLATION: Não é uma função, mas sim um conceito referente à ordenação de strings em determinado local ou linguagem.
  • E - COLLECT: Uma função de agregação que retorna um conjunto de elementos.

Assim, ao entender o funcionamento tanto da expressão CASE quando da função COALESCE, fica claro que a única função que pode substituir a expressão CASE fornecida é o COALESCE, que também busca o primeiro valor não nulo em uma lista de valores.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

A função (coalesce) é usada para retornar o primeiro valor não nulo em uma lista de expressões.

coalesce = senao tem um, vem outro

a-

CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END. <-> COALESCE(expr1, expr2)

The COALESCE function returns the first non-null expression from the list of expressions provided. In your case, if expr1 is not null, it will be returned; otherwise, expr2 will be returned.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo