rspec/rules/S1117/plsql/rule.adoc

45 lines
858 B
Plaintext
Raw Normal View History

include::../why-general.adoc[]
=== Noncompliant code example
The example below shows the typical situation in which shadowing can occur.
2020-06-30 12:47:33 +02:00
[source,sql,diff-id=1,diff-type=noncompliant]
2020-06-30 12:47:33 +02:00
----
SET SERVEROUTPUT ON
DECLARE
foo VARCHAR2(42) := 'foo';
BEGIN
DECLARE
foo VARCHAR2(42) := 'bar'; -- Noncompliant - this variable hides the one above and should be renamed
BEGIN
DBMS_OUTPUT.PUT_LINE(foo); -- Displays "bar", which is confusing
END;
DBMS_OUTPUT.PUT_LINE(foo); -- Displays "foo"
END;
/
----
=== Compliant solution
[source,sql,diff-id=1,diff-type=compliant]
2020-06-30 12:47:33 +02:00
----
SET SERVEROUTPUT ON
DECLARE
foo VARCHAR2(42) := 'foo';
BEGIN
DECLARE
bar VARCHAR2(42) := 'bar'; -- Compliant
BEGIN
DBMS_OUTPUT.PUT_LINE(bar); -- Displays "bar"
END;
DBMS_OUTPUT.PUT_LINE(foo); -- Displays "foo"
END;
/
----
include::../rspecator.adoc[]