> in the calling package render this array > available to any package > being called by the calling package or program? This is confusing. Packages don't call, and aren't called. Procedures and functions do that. And visibility is not something a caller passes on to a callee. If you have Package One is ... end One; Package Two is ... end Two; and you want to change them so they both have access to X and P in Package Database is X : Boolean; procedure P; then add "with Database;" to the "with" list of each of One and Two and each will be able to refer to the boolean Database.X and the procedure Database.P