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.