Me parece falta de privilegios. A menudo PUBLIC
el usuario tiene EXECUTE
privilegio otorgado en ese paquete, pero el privilegio puede ser revocado.
Puedes verificar si PUBLIC
tiene ese privilegio emitiendo la siguiente consulta:
SELECT * FROM all_tab_privs WHERE grantee = 'PUBLIC' AND table_name = 'UTL_FILE';
Si no se devuelven filas, intente otorgar el privilegio de ejecución al usuario con el que inició sesión o a PUBLIC
, como algún usuario privilegiado, por ejemplo SYS
:
GRANT EXECUTE ON SYS.utl_file TO user_name;
Editar
Debe otorgar el privilegio mientras está registrado como, por ejemplo, SYS
usuario.