The Public Specification
CREATE OR REPLACE PACKAGE public_pkg
IS
PROCEDURE do_only_this;
END;
My Not-so-private Private Package
CREATE OR REPLACE PACKAGE private_pkg
IS
PROCEDURE do_this;
PROCEDURE do_that;
END;
Add ACCESSIBLE BY to Whitelist
CREATE OR REPLACE PACKAGE private_pkg
ACCESSIBLE BY (public_pkg)
IS
PROCEDURE do_this;
PROCEDURE do_that;
END;
Public Package Body is a Redirect
CREATE OR REPLACE PACKAGE BODY public_pkg
IS
PROCEDURE do_only_this
IS
BEGIN
private_pkg.do_this;
private_pkg.do_that;
END;
END;
CREATE OR REPLACE PACKAGE BODY private_pkg
IS
PROCEDURE do_this
IS
BEGIN
DBMS_OUTPUT.put_line ('THIS');
END;
PROCEDURE do_that
IS
BEGIN
DBMS_OUTPUT.put_line ('THAT');
END;
END;
Invoke My Public Program
BEGIN
public_pkg.do_only_this;
END;
But Not This
BEGIN
private_pkg.do_this;
END;