rspec/rules/S3618/rule.adoc

48 lines
945 B
Plaintext
Raw Permalink Normal View History

== Why is this an issue?
Any insert which omits a value for a ``++NOT NULL++`` column in a database table will be automatically rejected by the database unless a default value has been specified for the column.
2020-06-30 12:48:39 +02:00
*Noteworthy*
This rule raises issues only when a *Database Catalog* is provided during the analysis. See \https://docs.sonarqube.org/latest/analysis/languages/cobol/
=== Noncompliant code example
With the table ``++MY_TABLE++`` having a ``++NOT NULL++`` column ``++N2++`` without default value and a ``++NOT NULL++`` column ``++N3++`` with default value:
[source,text]
----
EXEC SQL
INSERT INTO MY_TABLE *> Noncompliant; N2 value omitted
(
N1
)
VALUES
(
:ITQ1-NUMBER,
)
END-EXEC.
----
=== Compliant solution
[source,text]
----
EXEC SQL
INSERT INTO MY_TABLE *> Compliant even though N3 value not supplied
(
N1,
N2
)
VALUES
(
:ITQ1-NUMBER,
:ITQ2-NUMBER,
)
END-EXEC.
----