界: Code Quality
コードの質が低いと、予測できない動作につながります。ユーザーの視点には、それがしばしば使い勝手の悪さとなって現れます。攻撃者にとっては、予期せぬ方法でシステムにストレスを与える機会となります。
Code Correctness: Erroneous Null Comparison
Abstract
式
x = NULL
および x != NULL
は常に false となります。Explanation
PL/SQL では、
例 1: 以下のステートメントは必ず false になります。
NULL
の値は確定できません。どのような値とも等しくならず、別の NULL
値と同じになることもありません。また、null
値が他の値と同じになることはありません。例 1: 以下のステートメントは必ず false になります。
例 2: 以下のステートメントは必ず 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