Questão de Banco de Dados — PL-SQL — FCC 2020
- Código
- fc058919
- Banca
- FCC
- Órgão
- AL-AP
- Ano
- 2020
- Cargo
- Analista Legislativo - Desenvolvedor de Banco de Dados
- ANVL e ISNULL.
- BAVG e NVL.
- CISNULL e NULL.
- DISNULL e NVL.
- ENULLIF e COALESCE.
GabaritoD — ISNULL e NVL.
Gabarito: letra D. No SQL Server (T-SQL), a função ISNULL(expressão, valor_substituto) retorna o valor substituto quando a expressão é nula. No Oracle (PL/SQL), a função correspondente é NVL(expressão, valor_substituto). As demais alternativas trocam os nomes ou utilizam funções inadequadas.
A banca testa o conhecimento das funções específicas de cada SGBD para tratar valores nulos. Tanto ISNULL quanto NVL convertem um valor nulo em um valor numérico (ou de qualquer tipo) fornecido como segundo argumento.
É comum inverter as funções: achar que no SQL Server usa-se NVL e no Oracle ISNULL. A letra A inverte exatamente os nomes. Grave: I de ISnull para InSQL (SQL Server) e N de NVL para No Oracle (Oracle).
Troca as funções: informa NVL para SQL Server e ISNULL para Oracle. O correto é o inverso: ISNULL no T-SQL e NVL no PL/SQL.
AVG é uma função de agregação que calcula a média, não converte nulos. Não se aplica ao contexto.
NULL não é uma função, e sim um valor especial. Não existe função NULL em nenhum dos SGBDs para conversão de nulos.
Correta: ISNULL (SQL Server) e NVL (Oracle) são as funções nativas para substituir um valor nulo por um valor real.
NULLIF retorna nulo se dois valores são iguais, e COALESCE retorna o primeiro não nulo de uma lista. Embora COALESCE também substitua nulos, a questão pede as funções específicas de cada SGBD para conversão de um valor nulo em um valor numérico real – e o par tradicional é ISNULL/NVL. Além disso, a ordem "respectivamente" exige ISNULL para SQL Server e NVL para Oracle, o que não ocorre aqui.
Gabarito: letra D
Link permanente: /questoes/fc058919