You are trying to create a table dynamically in your procedure using EXECUTE IMMEDIATE.

Grant user 'CREATE ANY TABLE' previlege externally and not through role. Then it should work..

May be you have to think about additional privileges as you are also doing TRUNCATE table using EXEC IMME... I am not sure but you might need DELETE ANY TABLE (But make sure before granting this priovilege)

Sameer