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

Outils MySQL Discussion :

Crash de table sur LOAD DATA


Sujet :

Outils MySQL

  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut Crash de table sur LOAD DATA
    Bonjour

    J'ai une table que je vide puis charge chaque nuit avec la commande load data. Or depuis quelques jours, j'ai systématiquement une erreur au chargement, alors que rien ne semble avoir changé dans la structure ou les données d'entrée.
    Ensuite, la table apparaît comme "crashed", et ça met mon application par terre.
    Quelqu'un aurait-il une idée sur la question ?

    Merci d'avance.


    Structure de la table
    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
    25
    26
    CREATE TABLE `fp_cad_acti` (
      `Work_date` date default NULL,
      `KARBRE` varchar(10) default NULL,
      `LIBELLE` varchar(50) default NULL,
      `DEVISE` varchar(255) default NULL,
      `PC` double(17,5) default NULL,
      `PL` double(17,5) default NULL,
      `NON_compens_brute` double(17,5) default NULL,
      `PCP` double(17,5) default NULL,
      `PLP` double(17,5) default NULL,
      `VMFLUXC` double(17,5) default NULL,
      `VMFLUXL` double(17,5) default NULL,
      `SENSIBC` double(17,5) default NULL,
      `SENSIBL` double(17,5) default NULL,
      `P_Comp` double(17,5) default NULL,
      `P1` double(17,5) default NULL,
      `P2` double(17,5) default NULL,
      `P3` double(17,5) default NULL,
      `Compensation1_2` double(17,5) default NULL,
      `Compensation2_3` double(17,5) default NULL,
      `Compensation1_3` double(17,5) default NULL,
      `Volume_intertranche` double(17,5) default NULL,
      `Pasvolume` double(17,5) default NULL,
      `EFP` double(17,5) default NULL,
      KEY `Work_date` (`Work_date`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    Données (premières lignes, séparées par un saut pour plus de lisibilité) :
    2007-10-11|2131|CHANGE|CAD|0|1.16866992391295|1.16866992391295|0|1.16866992391295|-12054.97549225|0|0|0|0|1.16866992391295|0|0|0|0|0|0|1.16866992391295|1.16866992391295

    2007-10-11|2131|CHANGE|CHF|-4.55060927057122E-03|0|-4.55060927057122E-03|-4.55060927057122E-03|0|0|169.654423543841|0|0|0|-4.55060927057122E-03|0|0|0|0|0|0|4.55060927057122E-03|4.55060927057122E-03

    2007-10-11|2131|CHANGE|EUR|-136038.608360274|549252.2675282|413213.659167926|-126349.494840099|530296.824868284|-166238657.895129|100717172.988634|8.18333172817682E-02|0.545341227548338|126349.494840099|351438.121750696|52509.208277489|0|0|0|0|2526.98989680198|403947.330028185|406474.319924987

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Citation Envoyé par guidav Voir le message
    j'ai systématiquement une erreur au chargement
    Quelle erreur ?

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Format de date incorrect @ ligne 1.
    Pourtant c'est bien une date, générée comme telle.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Est-ce que le séparateur de colonnes ('fields terminated by ...') indiqué dans ta requête correspond bien à celui qui se trouve dans le fichier ?

  5. #5
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Oui, le séparateur est bon, et surtout j'ai une centaine d'autre tables générées par le même outil qui passent sans encombre.


    Le détail de l'erreur est (avec les données d'aujourd'hui) :
    ERROR 1292 (22007): Incorrect date value: '2007-03-23|22|MARCHES DE TAUX|SEK|-33
    8770.829324207|359564.864105715|20794.0347815077|-288233.984335124|311510.903307
    583|-301846' for column 'Work_date' at row 1

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Essaie de lire cette 1ère ligne avec fgetcsv() et fait un print_r() du tableau résultant pour voir ce que tu récupères. Peut-être qu'un caractère non imprimable se promène dans un coin.

  7. #7
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Il renvoie ceci :
    Array ( [0] => 2007-03-23|22|MARCHES DE TAUX|SEK|-338770.829324207|359564.864105715|20794.0347815077|-288233.984335124|311510.903307583|-30184622.3373552|37066332.9898176|1.1223291964298|0.970057826342008|245386.782628225|-9826.23312397963|66124.1206793574|-33020.9685829188|9826.23312397963|33020.9685829188|0|4907.73565256451|40415.7996552184|45323.5353077829 )

    Je me demande s'il a bien compris le format du fichier. Seulement, je me demande pourquoi ça fonctionne pour plein d'autres fichiers et pas pour celui-ci.

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    A vue de nez, le séparateur de colonnes n'est pas celui que tu penses.

  9. #9
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Et pourtant si, puisque c'est le même outil qui génère d'autres fichiers texte que j'arrive à charger avec load data. C'est bien ce qui m'ennuie.

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Mets une extraction d'une dizaine de lignes du fichier en PJ.

  11. #11
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Je ne peux pas mettre de PJ (pas de javascript sur mon poste), mais voici une extraction :
    2007-10-11|213|CHANGE|ZAR|0|6250.97812175739|6250.97812175739|0|6036.1771691492|-1704714.01276663|3.63797880709171E-12|0|1.71825578246141E+17|0|4818.97154342477|1217.20562572442|0|0|0|0|0|6036.1771691492|6036.1771691492
    2007-10-11|2131|CHANGE|CAD|0|1.16866992391295|1.16866992391295|0|1.16866992391295|-12054.97549225|0|0|0|0|1.16866992391295|0|0|0|0|0|0|1.16866992391295|1.16866992391295
    2007-10-11|2131|CHANGE|CHF|-4.55060927057122E-03|0|-4.55060927057122E-03|-4.55060927057122E-03|0|0|169.654423543841|0|0|0|-4.55060927057122E-03|0|0|0|0|0|0|4.55060927057122E-03|4.55060927057122E-03
    2007-10-11|2131|CHANGE|EUR|-136038.608360274|549252.2675282|413213.659167926|-126349.494840099|530296.824868284|-166238657.895129|100717172.988634|8.18333172817682E-02|0.545341227548338|126349.494840099|351438.121750696|52509.208277489|0|0|0|0|2526.98989680198|403947.330028185|406474.319924987
    2007-10-11|2131|CHANGE|GBP|-841.526888775478|0|-841.526888775478|-841.526888775478|0|0|4160076.85793856|0|0|0|-841.526888775478|0|0|0|0|0|0|841.526888775478|841.526888775478
    2007-10-11|2131|CHANGE|JPY|0|1282.66909165601|1282.66909165601|0|1282.66909165601|-688619.182648828|0|0|0|0|1282.66909165601|0|0|0|0|0|0|1282.66909165601|1282.66909165601
    2007-10-11|2131|CHANGE|MAD|-13.6387309786431|0|-13.6387309786431|-13.6387309786431|0|0|509678.768910799|0|0|0|-13.6387309786431|0|0|0|0|0|0|13.6387309786431|13.6387309786431
    2007-10-11|2131|CHANGE|SEK|0|507.762248720787|507.762248720787|0|507.762248720787|-253344.735251262|0|0|0|0|507.762248720787|0|0|0|0|0|0|507.762248720787|507.762248720787
    2007-10-11|2131|CHANGE|THB|-10.8898102892738|0|-10.8898102892738|-10.8898102892738|0|0|102091.034497336|0|0|0|-10.8898102892738|0|0|0|0|0|0|10.8898102892738|10.8898102892738
    2007-10-11|2131|CHANGE|USD|-312426.893162446|10172.7592604223|-302254.133902024|-311587.87635381|9728.83856235648|-51971770.3107747|94381944.7005798|0.601147298416491|1.07782895263439E-02|9728.83856235648|-299620.159412897|-2238.87837855665|0|0|0|0|194.57677124713|301859.037791453|302053.614562701
    2007-10-11|2131|CHANGE|ZAR|0|6250.97812175739|6250.97812175739|0|6036.1771691492|-1704714.01276663|3.63797880709171E-12|0|1.71825578246141E+17|0|4818.97154342477|1217.20562572442|0|0|0|0|0|6036.1771691492|6036.1771691492
    2007-10-11|214|PRODUITS STRUCTURES|CHF|-137668.087989337|247.502473844072|-137420.585515493|-100300.338021322|173.545257223931|-4333.82234439377|3283920.36847521|3176.59740176993|7.53679888891436E-03|173.545257223931|-1457.59756444302|-19805.592276952|-78863.6029227028|0|0|0|3.47090514447861|100126.792764098|100130.263669242
    2007-10-11|214|PRODUITS STRUCTURES|EUR|-1653231.23016099|944088.358756229|-709142.871404757|-1270461.85192257|699278.869110227|-48305540.7067293|59260185.8220901|3.42244638187164|1.59312419571305|699278.869110227|-38556.2454377649|-358224.532060191|-174402.20531439|0|0|0|13985.5773822045|571182.982812346|585168.560194551

  12. #12
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Voilà ce que j'obtiens pour la 1ère ligne :
    Array ( [0] => 2007-10-11 [1] => 213 [2] => CHANGE [3] => ZAR [4] => 0 [5] => 6250.97812175739 [6] => 6250.97812175739 [7] => 0 [8] => 6036.1771691492 [9] => -1704714.01276663 [10] => 3.63797880709171E-12 [11] => 0 [12] => 1.71825578246141E+17 [13] => 0 [14] => 4818.97154342477 [15] => 1217.20562572442 [16] => 0 [17] => 0 [18] => 0 [19] => 0 [20] => 0 [21] => 6036.1771691492 [22] => 6036.1771691492 )
    en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
      $fichier = fopen('quidav.txt', 'r');
      $data = fgetcsv($fichier, 4096, '|');
      print_r($data);
    ?>
    Ce qui me semble correct.

    PS - le séparateur est ALT GR + 6 (clavier alpha) ou ALT + 124 (pavé numérique), code héxa : 7C et ASCII 124.

  13. #13
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    J'ai la même chose que toi à partir du fichier initial (j'avais mis de mauvais arguments à fgetcsv, que je ne connaissais pas). Je continue à creuser de mon côté, merci pour touts ces conseils.

  14. #14
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    J'ai créé la table, et importé sans pb les lignes que tu m'as transmises, avec phpmyadmin, option 'load data'.

  15. #15
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Résolu : c'était un problème dans les données que me fournit mon voisin, qui mérite un bon coup de latte par la même occasion. A sa décharge, Mysql balance parfois un peu n'importe quoi comme erreur.

    Merci beaucoup de ton aide

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

Discussions similaires

  1. [MySQL] Deux problèmes sur LOAD DATA LOCAL INFILE
    Par ferd7 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/07/2015, 15h12
  2. Detection d'erreur sur LOAD DATA LOCAL INFILE
    Par cquilgars dans le forum Administration
    Réponses: 3
    Dernier message: 01/08/2013, 17h51
  3. [10g] ORA-00900 sur LOAD DATA INFILE
    Par Harelde dans le forum SQL
    Réponses: 3
    Dernier message: 24/04/2013, 16h45
  4. Erreur sur LOAD DATA INFILE
    Par crazyday dans le forum Import/Export
    Réponses: 4
    Dernier message: 13/08/2009, 01h56
  5. table A + table B (LOAD DATA INFILE) et JOIN ?
    Par ctobini dans le forum Requêtes
    Réponses: 4
    Dernier message: 03/01/2008, 17h24

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