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

SQL Procédural MySQL Discussion :

Charger un Fichier CSV avec traitement


Sujet :

SQL Procédural MySQL

  1. #1
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut Charger un Fichier CSV avec traitement
    Bonjour,

    Voila j'ai besoin de charger de charger un fichier CSV dans un Base de données. Le problème etant que j'ai des traitement a faire sur certaines données de ce fichier.

    Par exemple :
    J'ai une colonne date dans laquelle les données sont stockées au format AAMMJJ et moi je désire mettre ces données dans une table Date (par exemple) mais de la façon suivante :

    DATE
    --------
    Année
    Mois
    Jours

    Alors je ne sais pas vraiment comment faire cela ???
    Procédure stocké ? ( je ne sais pas ce que c'est mais je vois le principe)

    Sachant que je en prefere pas faire de Batch Java car ce fichier est trop lourd pred de 800 000 lignes

  2. #2
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Ou alors je viens d'avoir une autre idée.
    Charger ce fichier via un load table dans ma Bd dans une table temporaire. Faire le traitement alimenter les bonnes tables et supprimer la table temporaire ??

    Un peu loufoque peut être ...

  3. #3
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    ça me parait faisable. Si tu ne peux pas agir sur la génération du csv alors ta solution est bien.


  4. #4
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    On peut faire des traitement dan sune procedure stocké en MySql ??
    Car la je vais devoir découper une chaine de caractère qd même

  5. #5
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    On peut faire des traitement dan sune procedure stocké en MySql
    Oui

  6. #6
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Et tu sais ou je peux trouver des exemple de traitements sur des chaines de caractères par exemple ou autre en procédure stockée ... donc en langage PL/SQL

  7. #7
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Quels genres de traitement tu veux faire sur tes chaines.

    Tu peux faire une proc stockée qui se charge de l'insertion. Tu passes tout ce que tu veux inserer en parametre et apres tu insere ce que tu veux ou tu veux.

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    DROP PROCEDURE IF EXISTS PRC_INSERT_INTO_TABLE_TOTO;
     
    CREATE PROCEDURE PRC_INSERT_INTO_TABLE_TOTO (IN param1 INT,
                                             IN param2 INT, 
                                             IN param3 VARCHAR(3),
                                             IN param4 VARCHAR(255))
     
    BEGIN
     
    INSERT INTO TOTO(col1, col2, col3, col4)
    VALUES (param1, param2, SUBSTRING(param4,10,12),param3l);
     
    END;

  8. #8
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    Ba en gros dans mon fichier csv j'ai :
    060925;etc ....

    En y regardant de plus près :
    06 ->>> 2006
    09 ->>> 09 mois (Septembre)
    25 ->>> jour

    J'aimerais stocker ce champs que je dois redécouper dans une table :

    Date
    ------
    int Année
    int Trimestre
    int Mois
    int Jour

  9. #9
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Donc c'est possible.
    Il te suffit d'introduire des variables si tu veux faire des traitements un peu plus long.

    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
     
    DROP PROCEDURE IF EXISTS PRC_INSERT_INTO_TABLE_TOTO;
     
    CREATE PROCEDURE PRC_INSERT_INTO_TABLE_TOTO (IN param1 INT,
                                             IN param2 INT, 
                                             IN param3 VARCHAR(3),
                                             IN param4 VARCHAR(255))
     
    BEGIN
     
    DECLARE var1 VARCHAR(2);
     
    SET var1 = SUBSTRING(.....)
    INSERT INTO TOTO(col1, ....)
    VALUES (var1, ....);
     
    END;

    Apres comment retrouver le nom du mois à partir du chiffre, il te faut regarder la doc mysql sur tout ce qui est date


  10. #10
    Membre habitué Avatar de Iphelias
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2007
    Messages : 126
    Points : 130
    Points
    130
    Par défaut
    merci je vais essayer de me débrouiller avec ça

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

Discussions similaires

  1. [Débutant] Traitement fichier .csv avec valeurs manquantes
    Par Jah73 dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/01/2014, 16h19
  2. Traitement de fichiers CSV avec Access
    Par seb68 dans le forum VBA Access
    Réponses: 12
    Dernier message: 09/11/2008, 12h50
  3. Charger un fichier XML avec MSXML
    Par vanes92 dans le forum XML
    Réponses: 6
    Dernier message: 27/07/2006, 14h49
  4. [CSV] Affichage d'un fichier csv avec pagination
    Par arnoweb dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2006, 15h13
  5. [OLE][Excel] Charger un fichier csv
    Par bandit boy dans le forum C++Builder
    Réponses: 17
    Dernier message: 29/05/2006, 08h43

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