PL SQL Oracle PLSQL

SQL> CREATE TABLE EMP(
  2      EMPNO NUMBER(4) NOT NULL,
  3      ENAME VARCHAR2(10),
  4      JOB VARCHAR2(9),
  5      MGR NUMBER(4),
  6      HIREDATE DATE,
  7      SAL NUMBER(7, 2),
  8      COMM NUMBER(7, 2),
  9      DEPTNO NUMBER(2)
 10  );
Table created.
SQL> create or replace package myPackage1 is
  2   procedure P1; end;
  3  /
Package created.
SQL> create or replace package body myPackage1 is
  2   procedure P1 is
  3   v_cnt number;
  4   begin
  5       select count(*) into v_cnt from emp;
  6   end;
  7   end;
  8  /
Package body created.
SQL> create or replace package myPackage2 is procedure P2; end;
  2  /
Package created.
SQL> create or replace package body myPackage2 is
  2   procedure P2 is
  3   begin
  4       myPackage1.P1;
  5   end;
  6   end;
  7  /
Package body created.
SQL> create or replace package myPackage3 is procedure P3; end;
  2  /
Package created.
SQL> create or replace package body myPackage3 is
  2   procedure P3 is
  3   begin
  4       myPackage2.P2;
  5   end;
  6  end;
  7  /
Package body created.
SQL> create or replace package myPackage4 is
  2   procedure P4; end;
  3  /
Package created.
SQL> create or replace package body myPackage4 is
  2   procedure P4 is
  3   begin
  4       myPackage3.P3;
  5   end;
  6   end;
  7  /
Package body created.
SQL> create or replace package body myPackage1 is
  2   procedure P1 is
  3   v_cnt number;
  4   begin
  5       select count(*) into v_cnt from emp where empno > 0;
  6   end;
  7   end;
  8  /
Package body created.
SQL>
SQL> select object_name, object_type, status
  2   from user_objects
  3   where object_name in ('MYPACKAGE1','MYPACKAGE2','MYPACKAGE3','MYPACKAGE4');
no rows selected
SQL>
SQL>
SQL> drop table emp;
Table dropped.