Execute privilege granted successfully, but I can't execute the procedure I am using the database as me.

The procedure exists as an object that belongs to me.

Grant sucessful.

But when I attempt to EXECUTE insert_into_purified; i get
Error starting at line : 469 in command -
BEGIN insert_into_purified; END;
Error report -
ORA-01031: insufficient privileges
ORA-06512: at &quot;C##ELLIE.INSERT_INTO_PURIFIED&quot;, line 5
ORA-06512: at line 1
01031. 00000 -  &quot;insufficient privileges&quot;
*Cause:    An attempt was made to perform a database operation without
           the necessary privileges.
*Action:   Ask your database administrator or designated security
           administrator to grant you the necessary privileges
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