2023-05-03 11:06:20 +02:00
|
|
|
== Why is this an issue?
|
|
|
|
|
2020-06-30 12:48:07 +02:00
|
|
|
include::description.adoc[]
|
|
|
|
|
2023-05-25 14:18:12 +02:00
|
|
|
=== Noncompliant code example
|
|
|
|
|
|
|
|
[source,text]
|
|
|
|
----
|
|
|
|
SET SERVEROUTPUT ON
|
|
|
|
|
|
|
|
DECLARE
|
|
|
|
name VARCHAR2(42) := ''; /* This is equivalent to name := NULL; */
|
|
|
|
BEGIN
|
|
|
|
IF name = '' THEN /* Noncompliant; equivalent to name = NULL & therefore always FALSE*/
|
|
|
|
DBMS_OUTPUT.PUT_LINE('True'); /* Unreachable */
|
|
|
|
ELSE
|
|
|
|
DBMS_OUTPUT.PUT_LINE('False');
|
|
|
|
END IF;
|
|
|
|
END;
|
|
|
|
/
|
|
|
|
----
|
|
|
|
|
|
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
|
|
|
|
[source,text]
|
|
|
|
----
|
|
|
|
SET SERVEROUTPUT ON
|
|
|
|
|
|
|
|
DECLARE
|
|
|
|
name VARCHAR2(42) := ''; /* This is equivalent to name := NULL; */
|
|
|
|
BEGIN
|
|
|
|
IF name IS NULL THEN /* Compliant */
|
|
|
|
DBMS_OUTPUT.PUT_LINE('True');
|
|
|
|
ELSE
|
|
|
|
DBMS_OUTPUT.PUT_LINE('False');
|
|
|
|
END IF;
|
|
|
|
END;
|
|
|
|
/
|
|
|
|
----
|
2020-06-30 12:48:07 +02:00
|
|
|
|