No hay necesidad de escribir nuestro propio procedimiento almacenado para hacer esto. Oracle proporciona un procedimiento almacenado incorporado que podemos usar:DBMS_UTILITY.EXEC_DDL_STATEMENT :
DBMS_UTILITY.EXEC_DDL_STATEMENT('create table t1 (id number)');
De hecho, esto es más seguro que el procedimiento alternativo sugerido en la respuesta aceptada ya que no permite la ejecución de DML y por lo tanto está protegido contra la inyección de SQL