CREATE OR REPLACE PROCEDURE alter_user is
cSQL_statement varchar2(200);

BEGIN
cSQL_statement:= 'ALTER USER SCOTT IDENTIFIED BY SCOTT';

EXECUTE IMMEDIATE cSQL_statement;

End alter_user;


The owner of this proc must have ALTER USER rigth granted explicitely, not only granted the dba role;