Function Procedure Packages Oracle PLSQL Tutorial

SQL>
SQL> DECLARE
  2    v_TempVal BINARY_INTEGER := 5;
  3
  4    -- Forward declaration of procedure B.
  5    PROCEDURE B(p_Counter IN OUT BINARY_INTEGER);
  6
  7    PROCEDURE A(p_Counter IN OUT BINARY_INTEGER) IS
  8    BEGIN
  9      IF p_Counter > 0 THEN
 10        B(p_Counter);
 11        p_Counter := p_Counter - 1;
 12      END IF;
 13    END A;
 14
 15    PROCEDURE B(p_Counter IN OUT BINARY_INTEGER) IS
 16    BEGIN
 17      p_Counter := p_Counter - 1;
 18      A(p_Counter);
 19    END B;
 20  BEGIN
 21    B(v_TempVal);
 22  END;
 23  /
PL/SQL procedure successfully completed.
SQL>