Oracle: Not able to create tablespace from stored procedure
All roles are disabled in any named PL/SQL block (stored procedure, function, or trigger) that executes with definer's rights. Roles are not used for privilege checking and you cannot set roles within a definer's rights procedure.
  More


First of all dont create object under SYSTEM schema. Second in order to execute commands in PL/SQL you should have privileges granted directly to the user not from role. And SYSTEM user inherits the CREATE TABLESPACE system privilege via DBA role, so that you are able to create tablespace directly not from PL/SQL procedure. 

SQL&gt; conn sys as sysdba

SQL&gt; grant create tablespace to system;

Grant succeeded.

SQL&gt; conn system/password
Connected.

SQL&gt; exec testprc

PL/SQL procedure successfully completed.

SQL&gt;