PL/SQL packages are stored database objects whose specifications and bodies can be shared across multiple applications. Packages cannot be nested, cannot accept parameters directly (though their subprograms can), and are loaded into memory once per session rather than on every invocation.