界: Code Quality

代码质量不佳会导致不可预测的行为。对于用户来说,通常表现为可用性差。对于攻击者来说,提供了以意外方式对系统施加压力的机会。

Code Correctness: Erroneous Null Comparison

Abstract
表达式 x = NULLx != NULL 将始终为 false。
Explanation
在 PL/SQL 中,NULL 的值是不确定的。它不等于任何值,甚至不等于另一个 NULL 值。同样,一个 null 值永远不会等于另一个值。

例 1:以下语句将始终为 false。


checkNull BOOLEAN := x = NULL;
例 2:以下语句将始终为 false。


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