Um valor nulo é um campo que foi deixado em branco ou não tem valor atribuído.
Os valores nulos são comuns em bancos de dados, especialmente ao importar dados externos. Portanto, a menos que uma coluna contenha uma restrição para evitar valores nulos, o mecanismo de banco de dados provavelmente usará um valor nulo para um valor ausente.
Embora os valores nulos sejam comuns, eles podem levar a problemas de banco de dados, pois o banco de dados não tem valor para trabalhar. É, portanto, uma boa prática aplicar ações para lidar com valores nulos em suas consultas.
Nesta postagem, aprenderemos como converter valores nulos em uma determinada tabela para conter um valor padrão com menos probabilidade de causar erros de operação em seu banco de dados.
Função nvl oracle
Como mencionado, essa função nos permite substituir valores nulos por valores mais significativos. A sintaxe da função é fornecida abaixo:
Nvl (expr1, expr2);
A função aceita dois argumentos principais:
expr1 e expr2 - Este parâmetro define o valor a ser testado para valores nulos. Se o valor de expr1 for nulo, a função retornará o valor de expr2.
Ambas as expressões podem ter tipos de dados semelhantes ou diferentes. Se os tipos de dados correspondentes diferentes, o mecanismo de banco de dados poderá executar a conversão implícita para permitir a compatibilidade com os tipos de dados. Se for impossível converter os tipos de dados correspondentes, o mecanismo de banco de dados lançará um erro.
Oracle nvl () função exemplo de uso
O exemplo a seguir demonstra o uso básico da função nvl ():
Exemplo 1
Considere o seguinte exemplo:
Selecione NVL ('Hello,' World ') de Dual;
No exemplo anterior, usamos a função nvl () para testar se a string 'hello' é um valor nulo. Como o valor fornecido não é nulo, a função retornará a string 'hello'.
Exemplo 2
Considere o segundo exemplo mostrado abaixo:
selecione NVL (NULL, 'World') de Dual;
Nesse caso, como a primeira expressão é um valor nulo, a consulta retornará a segunda string, como mostrado abaixo:
Exemplo 3
Também podemos usar a função nvl () para substituir valores nulos em uma tabela de banco de dados. Considere a tabela dos funcionários mostrada abaixo:
Selecione First_Name, Last_Name, email, salário, comission_pct dos funcionários Emp;
Tabela resultante:
Como podemos ver, a coluna Commission_PCT contém valores nulos. Podemos criar uma consulta para substituir os valores nulos da coluna Comissário_PCT por 0, como mostrado no exemplo abaixo:
Selecione First_Name, Last_Name, email, salário, nvl (comission_pct, 0)
de funcionários emp;
Na consulta de exemplo anterior, usamos a função nvl () para testar o valor na coluna Comissário_pct para Nulls. Se houver um valor nulo, retornamos 0. Caso contrário, retornamos o valor original.
Isso deve nos permitir substituir os valores nulos na coluna por 0, como mostrado na tabela resultante abaixo:
Podemos usar isso com uma declaração de atualização ou armazenar o valor resultante em uma visualização de tabela.
Conclusão
Neste tutorial, você aprendeu a usar a função Oracle nvl () para substituir valores nulos por valores padrão. É bom ter em mente que, embora a função nvl () se pareça estreitamente com a função coalesce (), a função nvl () só pode retornar um único valor. Ao mesmo tempo, a função Coalesce () pode retornar vários valores.
Se você está procurando uma função que possa levar mais de dois argumentos sem usar a função Coalesce (), considere a função nvl2 ().