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

Oracle Discussion :

Probleme avec utl-file


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut Probleme avec utl-file
    Bonjour,

    J'ai un problème d'écriture de fichier avec Oracle 9i.
    En gros, je veux pouvoir écrire dans un fichier, mais je n'obtient pas de fichier en sortie. Je joins ici le code que j'exécute sous sqlplus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE OR REPLACE DIRECTORY "youpi" AS '.';
    DECLARE
          ref_fichier UTL_FILE.FILE_TYPE;
        BEGIN
          ref_fichier := UTL_FILE.FOPEN('youpi','youpi.txt','w');
          UTL_FILE.PUT_LINE(ref_fichier,'youpi');
          UTL_FILE.FFLUSH(ref_fichier);
          UTL_FILE.FCLOSE(ref_fichier);
        END;
    /
    J'obtiens le message suivant :
    PL/SQL procedure successfully completed.
    Mais j'ai pas de fichier !!!
    Pouvez-vous m'aider avant que je ne perde mes derniers cheveux ?

    Scratch

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut Re: Probleme avec utl-file
    Citation Envoyé par Scratch48
    ref_fichier := UTL_FILE.FOPEN('youpi','youpi.txt','w');
    es tu sûr du chemin ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 119
    Par défaut
    Parfois il peut être utile d'ajouter un bloc exception à son script PL/SQL : d'une part c'est plus propre et d'autre part ca permet d'identifier des erreurs. En l'occurence si tu te penches sur le chapitre UTL_FILE de la doc, tu verras que la gestion de nombreuses exceptions est mise en place dans Oracle et pourrait donc t'être particulièrement utile !

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE DIRECTORY "youpi" AS '.';
    C'est bien joli le . mais tu connais le répertoire courant de la base toi ? Pas moi en tout cas

    A mon avis, l'usage de chemin relatif n'est pas une bonne tactique

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Oui je suis certain du chemin puisque j'execute le script depuis le répertoire où se trouve le fichier.

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par Scratch48
    Oui je suis certain du chemin puisque j'execute le script depuis le répertoire où se trouve le fichier.
    Et bien tu te trompes puisque le chemin n'a aucun rapport avec le chemin où est positionné le client

    Fait une recherche sur tous les disques et tu devrais trouver ton fichier

  7. #7
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Comment puis-je voir le répertoire courrant de la base ?

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    je ne sais pas, fais une recherche sur le disque

  9. #9
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    j'imagine que c'est ORACLE_HOME ou dans ce coin là

  10. #10
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Je vais regarder.

    Merci pour les infos.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Par défaut
    sinon tu peux aussi définir le chemin dans le nom du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ref_fichier := UTL_FILE.FOPEN('youpi','d:\youpi.txt','w');
    Ca marche très bien dans ce cas là Enfin si tu as le fichier a la racine du d (en supposant que tu as un DD d: ) alors tu verras que ton script fonctionne, et qu'il s'agit d'un probleme de chemin

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Citation Envoyé par orafrance
    j'imagine que c'est ORACLE_HOME ou dans ce coin là
    Le répertoire courant de SQL*PLUS
    Windows :
    c'est le répertoire d'ou es lancé SQL*Plus
    clic droit sur l'icone sql*plus
    propriéte => démarrer dans

    Unix ou linux :
    C'est le répertoire ou tu te trouve lorsque tu lance SQLPLUS

    donc tu peux le changer en faisant
    host cd ...

  13. #13
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    attention, UTL_FILE ne considère pas les positionnements de SQL*Plus

  14. #14
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par Aeternus
    sinon tu peux aussi définir le chemin dans le nom du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ref_fichier := UTL_FILE.FOPEN('youpi','d:\youpi.txt','w');
    Ca marche très bien dans ce cas là Enfin si tu as le fichier a la racine du d (en supposant que tu as un DD d: ) alors tu verras que ton script fonctionne, et qu'il s'agit d'un probleme de chemin
    Non, en 9i il faut créer une directory et c'est la directory qui est en paramétre et non le chemin directement

  15. #15
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Citation Envoyé par jaouad
    Citation Envoyé par orafrance
    j'imagine que c'est ORACLE_HOME ou dans ce coin là
    Le répertoire courant de SQL*PLUS

  16. #16
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Bon, en fait, j'ai essayé en mettant le chemin depuis la racine comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ref_fichier := UTL_FILE.FOPEN('youpi','/exec/applis/MD4/MEL/testOlive/youpi.txt','w');
    La procédure est bien validée, je n'ai pas de message d'erreur mais toujours pas de fichier !!!

    PS: ça y est, j'ai plus un cheveux sur la tête

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 75
    Par défaut
    Au temps pour moi, j'ai confondu avec mon script PL/SQL d'une forme ou je déclare le chemin autrement gloups

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DECLARE 
     
    	out_file Text_IO.File_type;
    	ligne VARCHAR2(150) := '';
     
    BEGIN
     
    	out_file := Text_IO.Fopen('D:\transfert.txt', 'w');
            Text_IO.Put_Line(out_file, ligne);
    	Text_IO.Fclose(out_file);
     
    END;

    dsl

  18. #18
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Citation Envoyé par Scratch48
    Bon, en fait, j'ai essayé en mettant le chemin depuis la racine comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ref_fichier := UTL_FILE.FOPEN('youpi','/exec/applis/MD4/MEL/testOlive/youpi.txt','w');
    La procédure est bien validée, je n'ai pas de message d'erreur mais toujours pas de fichier !!!

    PS: ça y est, j'ai plus un cheveux sur la tête
    Le chemin d'accès doit être placé dans le directory

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE DIRECTORY YOUPI AS '/etc/.../...'
     
    GRANT READ, WRITE ON DIRECTORY YOUPI TO PUBLIC ;
     
    Fichier := UTL_FILE.FOPEN( 'YOUPI', 'youpi.txt', 'W', 32764 ) ;

  19. #19
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    En faisant ça, j'obtiens
    ERROR at line 1:
    ORA-29283: invalid file operation
    ORA-06512: at "SYS.UTL_FILE", line 449
    ORA-29283: invalid file operation
    ORA-06512: at line 4

  20. #20
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 38
    Par défaut
    Voici le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE OR REPLACE DIRECTORY YOUPI AS '/exec/applis/MD4/MEL/testOlive/';
    GRANT READ, WRITE ON DIRECTORY YOUPI TO PUBLIC; 
    DECLARE 
          ref_fichier UTL_FILE.FILE_TYPE; 
        BEGIN 
          ref_fichier := UTL_FILE.FOPEN('youpi','youpi.txt','w'); 
          UTL_FILE.PUT_LINE(ref_fichier,'youpi'); 
          UTL_FILE.FFLUSH(ref_fichier); 
          UTL_FILE.FCLOSE(ref_fichier); 
        END; 
    /

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. probleme avec IO.File.Delete
    Par Shadam dans le forum VB.NET
    Réponses: 16
    Dernier message: 18/04/2011, 14h02
  2. probleme avec welcom-file
    Par riadhhwajdii dans le forum JSF
    Réponses: 6
    Dernier message: 11/08/2009, 10h43
  3. Probleme avec Open File
    Par Antoinejdu44 dans le forum Windows Forms
    Réponses: 21
    Dernier message: 24/05/2009, 13h43
  4. Probleme avec JFileChooser, file NULL
    Par mugwump dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 08/08/2007, 15h06
  5. Flush auto d'un fichier avec UTL FILE
    Par tchoimars dans le forum SQL
    Réponses: 7
    Dernier message: 19/07/2007, 12h18

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