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

Requêtes MySQL Discussion :

Charger un fichier XML


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Charger un fichier XML
    Bonjour à tous;
    Je cherche à charger un fichier XML dans une table MySQL



    · Application WAMP (Windows 2012 server 64Bits)

    · Serveur MySQL : Version 5.7.23





    Paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW GLOBAL VARIABLES LIKE 'local_infile';
    Résultat : ON





    Table : 20181204



    Script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    LOAD DATA INFILE 'C:\\WampServer\\www\\Credo\\20181204_USP_018A.xml'
     
    INTO TABLE 20181204
     
    FIELDS TERMINATED BY '</'
     
    LINES TERMINATED BY '</DEL_POS>'



    Ou script alternatif

    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
    Load data local infile 'D:/Partage/CREDO/CREDO/20181204_USP_018A.xml'
     
    into table 20181204
     
    LINES STARTING BY '<DEL_POS>'
     
    FIELDS TERMINATED by '</'
     
    LINES TERMINATED by '</DEL_POS>'
     
    (@col1,@col2,@col3)
     
    SET CodeCredo=@col1,
     
    Etr_code=@col2,
     
    Populationn=@col3;



    Voici l’erreur que j’obtiens dans les 2 cas :

    MySQL a répondu : Documentation

    #1064 - Erreur de syntaxe près de '20181204
    FIELDS TERMINATED BY '</'
    LINES TERMINATED BY '</DEL_POS>'' à la ligne 2
    Un avis sur la question ?

    Merci d'avance,

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut herwin45000.

    Pourquoi définir comme nom de table un nombre ?
    J'aurai mis devant une lettre, par exemple "T20181204".

    J'espère que vous ne créez pas une table par jour ???
    Il suffit d'ajouter dans vos colonnes, la date du jour et de charger chaque fichier XML en associant ce fichier à la date du jour.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Le problème se situerait au niveau du fichier XML
    En fait je dois comparer 2 fichiers XML qui chacun corresponde à une date particulière.
    Il semblerait que le problème se situe au niveau du fichier XML ou de la table car avec un fichier texte et une table différente, le chargement s'effectue sans problème.

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut herwin45000.

    Voici un petit exemple de chargement d'un fichier de type XML :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `client`
    --------------
     
    --------------
    CREATE TABLE `client`
    ( `id`           integer unsigned not null auto_increment primary key,
      `num_id`       integer unsigned not null,
      `nom`          varchar(255)     not null,
      `prenom`       varchar(255)     not null,
      `relation`     varchar(255)     not null,
      `adresse`      varchar(255)         null,
      `postal`       varchar(255)         null,
      `ville`        varchar(255)     not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    LOAD XML INFILE 'E:/30.MySql/40.Load/Ex_52/Fichier.xml'
         INTO TABLE `client`
         CHARACTER SET latin1
         ROWS IDENTIFIED BY '<cli>'
    --------------
     
    --------------
    select * from client
    --------------
     
    +----+--------+----------+--------+----------+------------------+--------+-----------+
    | id | num_id | nom      | prenom | relation | adresse          | postal | ville     |
    +----+--------+----------+--------+----------+------------------+--------+-----------+
    |  1 |    120 | DUPOND   | Pierre | 253      | route de la mer  | 64200  | Biarritz  |
    |  2 |    121 | DURANT   | Jean   | 826      | rue de blabla    | 75002  | Paris     |
    |  3 |    122 | Smith    | John   | 333      | NULL             | NULL   | Londres   |
    |  4 |    123 | Grosjean | Pierre | 17       | Bld des allongés | 13001  | Marseille |
    +----+--------+----------+--------+----------+------------------+--------+-----------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    Et voici le contenu du fichier :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <fichier>
    	<cli>
    		<num_id>120</num_id>
    		<nom>DUPOND</nom>
    		<prenom>Pierre</prenom>
    		<relation>253</relation>
    		<adresse>route de la mer</adresse_c>
    		<postal>64200</code_postal>
    		<ville>Biarritz</ville>
    	</cli>
    	<cli>
    		<num_id>121</num_id>
    		<nom>DURANT</nom>
    		<prenom>Jean</prenom>
    		<relation>826</relation>
    		<adresse>rue de blabla</adresse_c>
    		<postal>75002</code_postal>
    		<ville>Paris</ville>
    	</cli>
    	<cli>
    		<num_id>122</num_id>
    		<nom>Smith</nom>
    		<prenom>John</prenom>
    		<relation>333</relation>
    		<ville>Londres</ville>
    	</cli>
    	<cli>
    		<num_id>123</num_id>
    		<nom>Grosjean</nom>
    		<prenom>Pierre</prenom>
    		<relation>17</relation>
    		<adresse>Bld des allongés</adresse_c>
    		<postal>13001</code_postal>
    		<ville>Marseille</ville>
    	</cli>
    </fichier>
    Comme vous pouvez le constater, aucun difficulté à charger son contenu dans une table.
    Les balises à charger doivent être au même niveau, c'est-à-dire juste en dessous de la balise "<CLI>".
    L'important est de savoir identifier la ligne à charger.
    Il faut aussi faire attention à la syntaxe que vous utilisez. MySql ne sait pas toujours tout gérer.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Charger un fichier XML avec MSXML
    Par vanes92 dans le forum XML
    Réponses: 6
    Dernier message: 27/07/2006, 14h49
  2. Réponses: 9
    Dernier message: 26/07/2006, 16h22
  3. Réponses: 9
    Dernier message: 27/06/2006, 21h48
  4. [Glade] charger un fichier xml au choix
    Par debutanteVB.NET dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 09/11/2005, 15h03
  5. [JDOM] Charger un fichier.xml
    Par Glutinus dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 03/08/2005, 15h46

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