You cannot use the set session authorization statement inside an execute as owner stored procedure even if the statement is embedded in nested procedure defined with or without the execute as clause.
The execute as clause is not supported for SQLJ procedures.
Plans in the procedure cache for the same procedure created with execute as caller are not shared across users as the objects in the procedure must be resolved to the user executing the procedure. Because of this, procedure cache usage may increase if many users are executing the procedure.The plan for a particular user is reused when the user executes the procedure again.
For information about the execute as stored procedure, see Managing User Permissions in the Security Administration Guide.