What is the benefit of creating an Oracle context over just granting package execution?
But I'm not seeing much benefit to a context at session level. I attach a package, but I still have to grant execute on it to any users I want to be able to use it. What am I missing?


Security

IMHO - Using SYS_CONTEXT() (instead of a Package) is a Security thing.  The only way to set SYS_CONTEXT() values is through a Package.  This package will most likely have access to data that the user does not.

This extra access can be done by:


Creating the Package as a Definer's Rights package
Creating the Package as an Invoker's Rights package and Grant it a Role (12.1+).


For extra security, the Context Package is not create in any of your DATA_SCHEMAs, CODE_SCHEMAs, or Parsing Schemas (eg the connected user or APEX Application Parsing Schema).  As such, I recommend you use place it in a separate "Security Schema".