AUTHID DEFINER is the Default value(run the procedure with the rights of the procedure's owner), did you user having privilege to create table. grant that privilege and the try.
1 person found this helpful
You will need to grant the definer CREATE TABLE, directly not through a role.
Or better: use AUTHID CURRENT_USER
or still better: refrain from creating tables on the fly at all.
granting direct privilege is the *worst* solution, as it results in a myriad of grants.
Senior Oracle DBA'
Why the LONG? It is a very ugly data type. And Oracle explicitly recommend not using it, and to use LOBs instead.
Also - that procedures opens a potential giant hole for SQL injection. There is NOTHING that is safe about it.