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 :

problème d'écriture dans un fichier


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut problème d'écriture dans un fichier
    Je veux écrire les infos d'une base de données dans un fichier .txt. Le fichier ne veut pas se fermer et rien ne s'écrit dedans alors que l'écriture ne renvoie aucune erreur. Voici le bout de code PL/SQL :


    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
    17
    18
    19
    20
    21
    22
    23
    24
    BEGIN         
            nom_fic        := 'CatComptable.txt';          
            fichier_sortie := UTL_FILE.FOPEN(wa_repertoire,nom_fic,'W',32767);         
    EXCEPTION          
    WHEN OTHERS THEN            
            DBMS_OUTPUT.PUT_LINE('CatComptable 1:'||SQLERRM);       
    END;              
    FOR enr_CatComptable IN cur_CatComptable 
    LOOP          
            wa_ligne := enr_CatComptable.cletbl||';'||enr_CatComptable.lib1;          
            DBMS_OUTPUT.PUT_LINE(wa_ligne);          
    BEGIN           
            UTL_FILE.PUT_LINE(fichier_sortie, wa_ligne);          
    EXCEPTION            
    WHEN OTHERS THEN              
            DBMS_OUTPUT.PUT_LINE('CatComptable 2'||SQLERRM);          
    END;       
    END LOOP;                     
    BEGIN           
            UTL_FILE.FCLOSE(fichier_sortie);       
    EXCEPTION          
    WHEN OTHERS THEN            
            DBMS_OUTPUT.PUT_LINE('CatComptable 3'||SQLERRM);       
    END;
    Et voici la réponse (les 4 premières lignes sont les résultats de la base):
    A;Assujetti à la TVA sur Débit
    D;Assujetti TVA Débit DOM-TOM
    J;TVA intra-com. - VENTE
    X;Exonéré Export
    CatComptable 3ORA-29285: erreur d'écriture sur le fichier


    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Bonjour et bienvenu sur le forum

    Merci de commencer par lire les règles et de préciser la version d'Oracle et d'utiliser les balises code pour plus de lisibilité.

  3. #3
    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'ai ajouté les balises

    pour info : http://www.sqlinform.com/

  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
    essaye de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UTL_FILE.FOPEN(wa_repertoire,nom_fic,'W',32767)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UTL_FILE.FOPEN(wa_repertoire,nom_fic,'W')

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    Ca ne change rien. Le nombre 32767 est le nombre maximal de caratères sur une ligne. C'est fixé par Oracle. J'ai la version Oracle 10g.

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    1. Qu'as-tu dans wa_repertoire ?
    2. As-tu créé ce directory avec les droits nécessaires ?
    3. Le répertoire correspondant au directory existe-t-il sur ton serveur de base de données ?
    4. Le fichier est-il créé dans ce répertoire ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 238
    Par défaut
    moi je propose d'essayer ceci :

    -1- Tester si le fichier est bien ouvert avec

    --> sys.utl_file.is_open(nomfic)

    pour être certain qu'il est bien ouvert

    et/ou -2- Ajouter ceci dans la partie qui ouvre le fichier

    fic:=utl_file.fopen(file_path,file_name,open_mode);
    Exception
    When sys.utl_file.invalid_path then dbms_output.put_line('ERR_001 : The file location or name was invalid');
    dbms_output.put_line('- Location : '||file_path);
    dbms_output.put_line('- Name : '||file_name);
    When sys.utl_file.invalid_mode then dbms_output.put_line('ERR_002 : The open_mode string was invalid');
    When sys.utl_file.invalid_operation then dbms_output.put_line('ERR_003 : The file could not be opened or operated on as requested');
    -- si ERR_01 : le parametre "UTL_FILE_DIR = *"
    n'existe probablement pas dans INIT.ORA
    -- si ERR_03 : Pas assez de droits ( +X ou +W ) sur le repertoire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'écriture dans un fichier
    Par nicolemans72 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 30/01/2007, 16h47
  2. [FTP] problème d'écriture dans un fichier
    Par oops! dans le forum Langage
    Réponses: 14
    Dernier message: 08/08/2006, 16h52
  3. problème d'écriture dans un fichier
    Par seurjer dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 09h15
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28

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