== Why is this an issue?

It is a best practice to have variable declarations outside of the loop. Additionally, declaring variables inside a loop is slightly less efficient because memory management is then performed with each iteration of the loop.


=== Noncompliant code example

[source,sql]
----
BEGIN
  FOR i IN 1..10 
  LOOP
    DECLARE
      variableX NUMBER:= 10;
    BEGIN
        variableX:= variableX+i;
        dbms_output.put_line(variableX);
    END;
 END LOOP;
END;
----


=== Compliant solution

[source,sql]
----
DECLARE
  variableX NUMBER:= 0;
BEGIN
  FOR i IN 1..10
  LOOP
    variableX:= variableX+1;
    dbms_output.put_line(variableX);
  END LOOP;
END;
----


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Move this variable declaration outside of the loop.


=== Highlighting

Variable declaration


endif::env-github,rspecator-view[]
