Created on 22 Aug 2015 ; Modified on 23 Aug 2016
Ovvero: come passare 4 ore a caccia di una libreria di Oracle.
Se ottenete questo errore durante la compilazione di una funzione in un DB Oracle,
è necessario controllare che la libreria UTL_FILE
sia caricata.
A questo fine eseguire:
sqlplus sysadm/pwd@XE as sysdba @path_to_file/utlfile.sql
dove sysadm
è un utente amministratore del DB.
Il file utlfile.sql
contiene la definizione della libreria utl_file
. Questo file è collocato
nella directory dei file di amministrazione di Oracle. Ad esempio, in un mio sistema è presente nella directory
C:\bin\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin
.
Si noti: as sysdba
. Senza questa dicitura, che eleva l'utenza al rango di SYS, non sono riuscito a caricare la libreria.
Dopo di che, assicurarsi che l'utente finale abbia i diritti di esecuzione. In sqlplus
, sempre con utenza di amministrazione DB, eseguire:
GRANT EXECUTE ON SYSTEM.utl_file TO user;
dove user
è l'utente interessato.