IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

UTL_FILE : problème d'ouverture de fichier


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut UTL_FILE : problème d'ouverture de fichier
    Bonjour,

    J'essaye d'ajouter une ligne dans un fichier mais à chaque fois j'obtiens un message de répertoire non valide. Je ne comprends pas.

    Je suis en Oracle 10g2 sur un poste de dev en Windows XP.

    Procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE OR REPLACE PROCEDURE PRO_FIC_EcrireLogTest 
       IS                                                                                                                                            
          vFicLog UTL_FILE.FILE_TYPE;                                                                                                                                                                            
       BEGIN                                                                                                                                                                                                
          -- Ouverture du fichier
          vFicLog := UTL_FILE.FOPEN ('C:\TEMP', 'desc.txt', 'A');                                                                                                                                     
          -- Ecriture du titre
          IF UTL_FILE.IS_OPEN (vFicLog) THEN
              UTL_FILE.PUT_LINE(vFicLog, 'Hello world');                                                                                                                                                                  
              UTL_FILE.FCLOSE (vFicLog);                                                                                                                                                                            
          END IF;                                                                                                                                                                                               
     
       END PRO_FIC_EcrireLogTest;                                                                                                                                                                                                 
     
    /
    show error;
    Repertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    C:\TEMP>dir
     Le volume dans le lecteur C n'a pas de nom.
     Le numéro de série du volume est 00B9-1494
     
     Répertoire de C:\TEMP
     
    01/12/2010  09:08    <REP>          .
    01/12/2010  09:08    <REP>          ..
    21/06/2010  13:02         2*860*262 catalog.log
    22/06/2010  15:16        15*766*292 catproc.log
    09/06/2010  12:17           403*401 desc.txt
                   3 fichier(s)       19*029*955 octets
                   2 Rép(s)  33*647*808*512 octets libres
    Message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WIND\wtadmin> exec PRO_FIC_EcrireLogTest
    BEGIN PRO_FIC_EcrireLogTest; END;
     
    *
    ERREUR Ó la ligne 1 :
    ORA-29280: chemin de rÚpertoire non valide
    ORA-06512: Ó "SYS.UTL_FILE", ligne 33
    ORA-06512: Ó "SYS.UTL_FILE", ligne 436
    ORA-06512: Ó "TOTO.PRO_FIC_ECRIRELOGTEST", ligne 6
    ORA-06512: Ó ligne 1
    Je suis preneur de toute piste
    Merci d'avance pour les réponses.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Utilisez les directories (d'Oracle) à la place des répertoires de l'OS.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Merci pour la réponse
    C'est la piste que je suivais actuellement même si elle m'embêtait car le user qui doit exécuter le script n'a pas les droits pour créer des directories. Il va falloir que je repasse un grant sur les plateformes de dev et de prod (pas compliqué techniquement mais lourd d'un point de vue organisation interne )

    Pour les directories je me suis inspirer de cet article :
    René Nyffenegger's collection of things on the web : Create directory in Oracle

    J'ai testé sur dev cet exemple et il fonctionne. Ne me reste plus qu'à modifier mes scripts.

    Une fois adaptés, je reviendrais clore le post.

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    L’autre solution c’est pire encore! Elle suppose d'ajouter les répertoires dans un paramètre d’initialisation de la base (utl_file_dir) avec redémarrage de la base pour la prise en compte. Ou mettre la valeur ‘*’ dans ce même paramètre pour avoir accès à n’importe quelle autre répertoire avec des conséquences difficilement digérables par les administrateurs de système.
    C'est pour ça que cette méthode a été dépréciée.

Discussions similaires

  1. [VBA - Excel] Problème d'ouverture de fichier
    Par seiryujay dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 10h55
  2. [Système] Problème d'ouverture de fichier
    Par Neii Mad dans le forum Langage
    Réponses: 8
    Dernier message: 03/07/2006, 00h11
  3. Problème à l'ouverture de fichiers Word
    Par Asdorve dans le forum Word
    Réponses: 8
    Dernier message: 19/05/2006, 12h03
  4. Réponses: 5
    Dernier message: 05/05/2006, 15h08
  5. Réponses: 2
    Dernier message: 20/04/2006, 22h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo