rspec/rules/S1117/plsql/rule.adoc
2023-06-15 17:09:18 +02:00

41 lines
819 B
Plaintext

:message: Rename "${elementName}" which (hides|has the same name as) the field declared at line {}.
include::../why.adoc[]
[source,sql,diff-id=1,diff-type=noncompliant]
----
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;
/
----
[source,sql,diff-id=1,diff-type=compliant]
----
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[]