Configure Oracle user in Enterprise Manager to CREATE VIEW on any of his tables
To query data from the tables owned by an user, the user does not need any additinoal privileges. Your script fails because the user does not have the privilege to create a view.

GRANT CREATE VIEW TO user;


Note: privileges granted through a role have no effect in a PL/SQL script.