== Why is this an issue? Jumping back to a previous statement using ``++GOTO++`` is a way to reimplement loops, which PL/SQL already provides in much more readable forms. === Noncompliant code example [source,sql] ---- SET SERVEROUTPUT ON DECLARE result PLS_INTEGER := 0; counter PLS_INTEGER := 1; BEGIN <> result := result + counter; counter := counter + 1; IF counter <= 9 THEN GOTO loop; -- Noncompliant END IF; DBMS_OUTPUT.PUT_LINE('Sum from 1 to 9 is ' || result); -- Displays 1 + 2 + ... + 8 + 9 = 45 END; / ---- === Compliant solution [source,sql] ---- SET SERVEROUTPUT ON DECLARE result PLS_INTEGER := 0; BEGIN FOR counter IN 1 .. 9 LOOP result := result + counter; END LOOP; DBMS_OUTPUT.PUT_LINE('Sum from 1 to 9 is ' || result); -- Displays 1 + 2 + ... + 8 + 9 = 45 END; / ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Replace this backwards GOTO by a loop. ''' == Comments And Links (visible only on this page) === on 22 May 2013, 09:39:52 Fabrice Bellingard wrote: Implementation: \http://jira.sonarsource.com/browse/PLSQL-222 include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]