Bonjour, j'ai un comportement différent sur les commandes utl_file en local connection vs remote connection.
Pour isoler le pb j'ai créé un petit script :
$ cat /tmp/test.sql
declare
f utl_file.file_type;
begin
f := utl_file.fopen('DIR_LOG','test1.txt', 'w');
utl_file.put_line(f,'first line');
utl_file.fclose(f);
end;
/
|
DIR_LOG est correctement défini, le répertoire Unix est créé, oracle a les droits en écriture dessus, et j'ai bien donné les droits au user qui va lancer le script :
GRANT READ, WRITE ON DIRECTORY DIR_LOG to monuser |
1er cas: connexion locale par :
je lance mon script SQL qui se termine correctement
SQL> @/tmp/test.sql
PL/SQL procedure successfully completed.
|
et le fichier est bien créé.
Dans le second cas, remote connection, je me connecte en précisant l'entrée dans le tnsnames (@MONSID), même si la base est en local sur le serveur :
$ sqlplus monuser/monmdp@MONSID |
connexion toujours OK mais erreur sur le script :
SQL> @/tmp/test.sql
declare
*
ERROR at line 1:
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operation
ORA-06512: at line 4
|
D'où le problème peut il venir ? Merci.