Function Procedure Packages Oracle PLSQL Tutorial

SQL>
SQL> DECLARE
  2    PROCEDURE b (caller VARCHAR2);  -- This is a forward referencing stub.
  3    PROCEDURE a (caller VARCHAR2) IS
  4      procedure_name VARCHAR2(1) := 'A';
  5    BEGIN
  6      dbms_output.put_line('Procedure "A" called by ['||caller||']');
  7      b(procedure_name);
  8    END;
  9    PROCEDURE b (caller VARCHAR2) IS
 10      procedure_name VARCHAR2(1) := 'B';
 11    BEGIN
 12      dbms_output.put_line('Procedure "B" called by ['||caller||']');
 13    END;
 14  BEGIN
 15    a('Main');
 16  END;
 17  /
Procedure "A" called by [Main]
Procedure "B" called by [A]
PL/SQL procedure successfully completed.
SQL>