Execute privilege granted successfully, but I can't execute the procedure
It seems the user lacked CREATE VIEW privilege.
I can reproduce the error, but not the part about needing to grant it to yourself, which doesn't make sense. If you could grant privileges to yourself there would be no security at all
Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 
Connected as sys AS SYSDBA

SQL&gt; create user ellie identified by ellie quota unlimited on users;

User created


SQL&gt; grant create session, create table, create procedure to ellie;

Grant succeeded


SQL&gt; conn ellie/ellie
Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 
Connected as ellie

SQL&gt; create or replace procedure insert_into_purified as
  2  begin
  3      execute immediate 'create or replace view demo_view as select * from dual';
  4  end insert_into_purified;
  5  /

Procedure created


SQL&gt; exec insert_into_purified
begin insert_into_purified; end;

ORA-01031: insufficient privileges
ORA-06512: at &quot;ELLIE.INSERT_INTO_PURIFIED&quot;, line 3
ORA-06512: at line 1

SQL&gt; conn / as sysdba
Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 
Connected as sys AS SYSDBA

SQL&gt; grant create view to ellie;

Grant succeeded


SQL&gt; conn ellie/ellie
Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 
Connected as ellie

SQL&gt; exec insert_into_purified

PL/SQL procedure successfully completed


SQL&gt; desc demo_view
Name  Type        Nullable Default Comments 
----- ----------- -------- ------- -------- 
DUMMY VARCHAR2(1) Y