Permissions in Oracle granted indirectly via roles are not available when compiling stored procedures, functions, and packages. Direct grants are required when creating these objects in the database. Learn more details in this Oracle tip.

This story continues at http://www.databasejournal.com/news/article.php/3678226