
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
49 lines
936 B
Plaintext
49 lines
936 B
Plaintext
== Why is this an issue?
|
|
|
|
Constants must be immediately initialized at declaration. They cannot be reassigned any value after the declaration, as they are constant. This rule prevents PLS-00322 exceptions from being raised at runtime.
|
|
|
|
The following code snippet illustrates this rule:
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,sql]
|
|
----
|
|
DECLARE
|
|
foo CONSTANT PLS_INTEGER NULL; -- Noncompliant PLS-00322
|
|
bar CONSTANT PLS_INTEGER NOT NULL; -- Noncompliant PLS-00322
|
|
aa CONSTANT PLS_INTEGER; -- Noncompliant
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,sql]
|
|
----
|
|
DECLARE
|
|
foo CONSTANT PLS_INTEGER NULL :=42;
|
|
bar CONSTANT PLS_INTEGER NOT NULL := 42;
|
|
aa CONSTANT PLS_INTEGER := 42; -- Compliant
|
|
BEGIN
|
|
NULL;
|
|
END;
|
|
/
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Add an initialization to this declaration.
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|