J'ai tenté de débugger une procédure stockée Oracle. C'est procédure stockées plantait sur l'accès à un fichier via le script suivant : DECLARE vc_SeqInvoiceFile VARCHAR2 (4); vc_DirectoryAlias VARCHAR2 (50):= '/var/lad'; vc_Filename VARCHAR2 (25); vc_ExtensionFile VARCHAR2 (4):='.txt'; vf_File UTL_FILE.FILE_TYPE; BEGIN SELECT TO_CHAR(COMPTEURSLS.nextval) INTO vc_SeqInvoiceFile from DUAl; vc_Filename := 'PSLS_DISP01_'||vc_SeqInvoiceFile||'_LADC'||vc_ExtensionFile; dbms_output.put_line ( 'essai' ); vf_File := UTL_FILE.FOPEN (vc_DirectoryAlias, vc_filename, 'W'); dbms_output.put_line (vc_Filename ); EXCEPTION WHEN utl_file.invalid_path THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.invalid_path'); WHEN utl_file.invalid_mode THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.invalid_mode'); WHEN utl_file.invalid_filehandle THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.invalid_filehandle'); WHEN utl_file.invalid_operation THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.invalid_operation'); WHEN utl_file.read_error THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.read_error'); WHEN utl_file.write_error THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.write_error'); WHEN utl_file.internal_error THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.internal_error'); WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20001, 'utl_file.other_error'); END; / Le résultat fut : ERROR at line 1: ORA-20001: utl_file.invalid_path ORA-06512: at line 20 Le problème vient du fait que '/var/lad' n'a pas été déclaré dans Oracle. S'il avait s'agit d'un serveur 9.2.x ou ultérieur, il aurait fallu, avec le compte SYS ou SYSTEM, lancer : CREATE DIRECTORY var_lad_dir AS '/var/lad'; GRANT READ ON DIRECTORY var_lad_dir to synchro; GRANT WRITE ON DIRECTORY var_lad_dir to synchro; Dans le cas qui s'est présenté, il s'agissait d'un serveur 8.1.7.4. Il fallait donc modifier le fichier init.ora pour ajouter ou modifier une ligne UTL_FILE_DIR = /toto,/tutu/machin''',/var/lad''' Puis il a fallu '''redémarrer''' le serveur !