Wydaje mi się, że to brak przywilejów. Często PUBLIC
użytkownik ma EXECUTE
przywilej przyznany dla tego pakietu, ale przywilej może zostać cofnięty.
Możesz sprawdzić, czy PUBLIC
ma to uprawnienie, wydając następujące zapytanie:
SELECT * FROM all_tab_privs WHERE grantee = 'PUBLIC' AND table_name = 'UTL_FILE';
Jeśli nie zostaną zwrócone żadne wiersze, spróbuj przyznać uprawnienia do wykonywania użytkownikowi, jako którego jesteś zalogowany, lub użytkownikowi PUBLIC
, jako uprzywilejowany użytkownik, na przykład SYS
:
GRANT EXECUTE ON SYS.utl_file TO user_name;
Edytuj
Musisz przyznać uprawnienia będąc zalogowanym na przykład jako SYS
użytkownika.