utl_file en remote connection [ORACLE] - SQL/NoSQL - Programmation
Marsh Posté le 29-12-2008 à 16:38:46
ne s'agirait il pas d'un problème lié à la version de client oracle.
Car dans le deuxième cas, tu passes par le client et le listener d'oracle alors que dans le premier ce n'est pas le cas.
Vérifie avec la même version que la db ORACLE installée.
Marsh Posté le 29-12-2008 à 16:49:49
Merci pour la réponse mais il ne peut pas y avoir d'incompatibilité puisque tout est sur le même serveur.
Alors bien sûr on va me dire: "mais pourquoi passer par la couche réseau dans ce cas ?", en fait c'est un développement qui a été intégralement fait en passant par la couche réseau (au cas j'imagine où un jour cela soit séparé) et je voulais conserver le principe. Et puis j'aimerais comprendre cette différence de comportement.
Marsh Posté le 29-12-2008 à 13:53:45
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 :
$ sqlplus monuser/monmdp
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.