[ORACLE] utl_file en remote connection

utl_file en remote connection [ORACLE] - SQL/NoSQL - Programmation

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.

Reply

Marsh Posté le 29-12-2008 à 13:53:45   

Reply

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.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed