Reino: Code Quality
Códigos de baixa qualidade levam a comportamentos imprevisíveis. Da perspectiva do usuário, isso normalmente se manifesta como usabilidade ruim. Para um invasor, trata-se de uma oportunidade para atacar o sistema de formas imprevistas.
Code Correctness: Erroneous Null Comparison
Abstract
As expressões
x = NULL
e x != NULL
serão sempre false.Explanation
No caso de PL/SQL, o valor
Exemplo 1: Esta instrução será sempre false.
NULL
é indeterminado. Não será equivalente a nada, nem mesmo a um outro valor NULL
. Além disso, um valor null
nunca é equivalente a outro valor.Exemplo 1: Esta instrução será sempre false.
Exemplo 2: Esta instrução será sempre false.
checkNull BOOLEAN := x = NULL;
checkNotNull BOOLEAN := x != NULL;
References
[1] Steven Feuerstein Oracle PL/SQL Best Practices O'Reilly
[2] Standards Mapping - Common Weakness Enumeration CWE ID 480
desc.structural.sql.code_correctness_erroneous_null_comparison_plsql