# G-7320: Avoid using RETURN statements in a PROCEDURE.

Major

Maintainability, Testability

## Reason

Use of the return statement is legal within a procedure in PL/SQL, but it is very similar to a goto, which means you end up with poorly structured code that is hard to debug and maintain.

A good general rule to follow as you write your PL/SQL programs is "one way in and one way out". In other words, there should be just one way to enter or call a program, and there should be one way out, one exit path from a program (or loop) on successful termination. By following this rule, you end up with code that is much easier to trace, debug, and maintain.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 create or replace package body my_package is procedure my_procedure is l_idx simple_integer := 1; co_modulo constant simple_integer := 7; begin <> loop if mod(l_idx,co_modulo) = 0 then return; end if; l_idx := l_idx + 1; end loop mod7_loop; end my_procedure; end my_package; / 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 create or replace package body my_package is procedure my_procedure is l_idx simple_integer := 1; co_modulo constant simple_integer := 7; begin <> loop exit mod7_loop when mod(l_idx,co_modulo) = 0; l_idx := l_idx + 1; end loop mod7_loop; end my_procedure; end my_package; /