Parece-me falta de privilégios. Frequentemente
PUBLIC o usuário tem EXECUTE privilégio concedido nesse pacote, mas o privilégio pode ser revogado. Você pode verificar se
PUBLIC tem esse privilégio emitindo a seguinte consulta:SELECT * FROM all_tab_privs WHERE grantee = 'PUBLIC' AND table_name = 'UTL_FILE';
Se não houver linhas retornadas, tente conceder o privilégio de execução para o usuário com o qual você está conectado ou para
PUBLIC , como algum usuário privilegiado, por exemplo SYS :GRANT EXECUTE ON SYS.utl_file TO user_name;
Editar
Você deve conceder o privilégio enquanto estiver conectado como, por exemplo,
SYS do utilizador.