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

MS SQL Server Discussion :

importer des fichiers csv dans sql server


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Sopotel
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Sopotel
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut importer des fichiers csv dans sql server
    Bonjour j'aimerais exporter les données ci-dessous dans une base de données sql server 2008 et tout ça sur une seule ligne. Cela me permettra d'avoir un suivi des instructions faite par chaque machines (ici la machine EDS2 3A2-1711). Il faut que je respecte l'ordre chronologique.

    2011.06.02 00:00:00.07,/Alia,50.19.7.187,EDS2 3A2-1711,,,,
    2011.06.02 00:01:06.51,EDS2 3A2-1711,BagSc,,,,,
    2011.06.02 00:01:08.09,EDS2 3A2-1711,TagIn,NAFZ2014850,,,,
    2011.06.02 00:01:09.68,EDS2 3A2-1711,MfDec,NAFZ2014850,R,,,
    2011.06.02 00:01:09.71,EDS2 3A2-1711,SendB,NAFZ2014850,50.2.4.3,960,R,
    2011.06.02 00:01:09.90,EDS2 3A2-1711,SentB,NAFZ2014850,50.2.4.3,,,
    2011.06.02 00:01:09.83,PO-2A-10G-3,WsRcv,NAFZ2014850,711,960,0,
    2011.06.02 00:01:10.33,PO-2A-10G-3,WsSho,NAFZ2014850,711,0,,
    2011.06.02 00:01:12.52,PO-2A-10G-3,WsDec,NAFZ2014850,711,0,R,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     Dim Machines(0 To 200, 0 To 1) As Object 'tableau enregistrement machine (Nom machine, ip)'
     Dim SuiviBagage(0 To 20000, 0 To 13) As Object 'tableau de suivi tagbagage (Date,Timer Bagscan,Nom machine,Ip machine,Timer Tagin,Tag,Timer MfDec,MfDEC,Timer SentB,Nom de poste,Ip poste,Timer WsSho,Timer Wsdec,WSdec)'
    Quelles commandes en visual basic faut il appliquer pour récupérer ses informations,dans ce fichier csv délimité par des virgules?

    Dans un premier temps je mets dans un tableau temporaire mes informations, je ne sais pas si je procède de la bonne manière. La commande BULK INSERT peut elle être intéressante ici.

    Je suis novice en sql server, je vous remercie d'avance de l'aide apportée.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Oublies Visual Basic pour ce genre de manipulation. Utilises Integration Service (SSIS).

    Un tutoriel est disponible à cette adresse : http://odelmotte.developpez.com/tuto.../introduction/

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Sopotel
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Sopotel
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Bonjour, je vous remercie de votre réponse.
    J'ai lu le tutoriel, donc on doit créer une table sur sql server 2008 et ensuite utiliser SSIS pour stocker les données de mon fichier csv ou log .

    En faite ce qui me pose problème, c'est que la machine qui m'édite mes fichiers le fait à des heures précise. Pour le log toutes les heures et pour le csv à la fin de la journée. Donc il y a un paquet de lignes et de fichier générés
    J'aimerais bien récupérer ses informations automatiquement et les stocker dans ma base de données à l'aide d'une application.
    Plus précisément mon code devra:

    1) Récupérer les fichiers sur un server
    2) Stocker toutes les informations qui m'intéresse dans sql server 2008
    3) A l'aide de crystal report faire des opérations sur ma base de données ( statistique, graphe etc. )

    Mais si cela peut être fait plus simplement je suis preneur.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    C'est tout à fait possible avec SSIS.

    SSIS dispose d'un composant "Tâche de système de fichier" qui te permettra de gérer tes fichiersc csv

    En gros, le SSIS lira le fichier Log, convertira les données et les écrira dans une table SQL. Pour cela, il faudra bien entendu que le service SQL qui exécutera le lot dispose des droits nécessaires sur le répertoire concerné.

    Le composant Tâche de système de fichier, te permettra de détruire ou déplacer ton fichier csv dans un autre répertoire, par exemple.

    Bon au début, quand on ne connait pas, c'est casse tête, mais avec l'habitude, tu verras que SSIS est l'outil idéal pour importer des données provenant de fichier texte ou d'autres bases de données.

    Bon travail.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Sopotel
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Sopotel
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Bonjour, SSIS est vraiment pas mal comme système de gestion de fichiers. Mais comme tu le dit et je confirme c'est casse tête.

    Penses-tu que je pourrais vraiment tout faire avec, comme par exemple choisir les données précise que je veux traiter.
    Tu connais un bouquin complet pour se former à SSIS

  6. #6
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Il y a un forum pas loin pour poser quelques questions
    Sinon, c'est une interface complètement graphique et finalement assez intuitive.

    On utilise une tâche de dataflow (transfert de données) et dans cette tâche on a à disposition des composants de sources, transformations et destinations.
    Il ne reste qu'à choisir, relier les petites flèches et paramétrer ce que tu veux dans les transformations avec un langage spécifique mais très proche du SQL.

    Le tout c'est d'éviter les pièges comme brancher le composant de sources sur un fichier texte dans lequel il va détecter automatiquement des colonnes de types nvarchar que l'on va vouloir insérer dans un varchar... là, il refuse et il faut passer par un composant de conversion avant.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par nathantahiti Voir le message
    Bonjour, SSIS est vraiment pas mal comme système de gestion de fichiers. Mais comme tu le dit et je confirme c'est casse tête.

    Penses-tu que je pourrais vraiment tout faire avec, comme par exemple choisir les données précise que je veux traiter.
    Tu connais un bouquin complet pour se former à SSIS
    Professional SQL Server® 2008 Integration Services aux éditions Wiley.

    Mais je te conseille le tutoriel pour commencer + piocher ici et là dans des blogues ou fora. Le livre te permttra ensuite d'approfondir le sujet.

    Le travail que tu dois entreprendre est justement un cas d'école : lire un fichier texte, convertir les données et les insérer dans une table. C'est un bon début...

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Sopotel
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Sopotel
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Professional SQL Server® 2008 Integration Services aux éditions Wiley.

    Mais je te conseille le tutoriel pour commencer + piocher ici et là dans des blogues ou fora. Le livre te permttra ensuite d'approfondir le sujet.

    Le travail que tu dois entreprendre est justement un cas d'école : lire un fichier texte, convertir les données et les insérer dans une table. C'est un bon début...
    Oui je confirme et SSIS me simplifie vraiment les choses, mais je voudrais travailler avec cette base donnée, suis-je obligé de passer par Visual Basic pour gérer ou trier ma base et sélectionner les informations qui m'intéresse.

    En gros ça serais de mettre ses données sur une seule ligne :


    2011.06.02 00:00:00.07,/Alia,50.19.7.187,EDS2 3A2-1711,,,,
    2011.06.02 00:01:06.51,EDS2 3A2-1711,BagSc,,,,,
    2011.06.02 00:01:08.09,EDS2 3A2-1711,TagIn,NAFZ2014850,,,,
    2011.06.02 00:01:09.68,EDS2 3A2-1711,MfDec,NAFZ2014850,R,,,
    2011.06.02 00:01:09.71,EDS2 3A2-1711,SendB,NAFZ2014850,50.2.4.3,960,R,
    2011.06.02 00:01:09.90,EDS2 3A2-1711,SentB,NAFZ2014850,50.2.4.3,,,
    2011.06.02 00:01:09.83,PO-2A-10G-3,WsRcv,NAFZ2014850,711,960,0,
    2011.06.02 00:01:10.33,PO-2A-10G-3,WsSho,NAFZ2014850,711,0,,
    2011.06.02 00:01:12.52,PO-2A-10G-3,WsDec,NAFZ2014850,711,0,R,

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par nathantahiti Voir le message
    Oui je confirme et SSIS me simplifie vraiment les choses, mais je voudrais travailler avec cette base donnée, suis-je obligé de passer par Visual Basic pour gérer ou trier ma base et sélectionner les informations qui m'intéresse.

    En gros ça serais de mettre ses données sur une seule ligne :


    2011.06.02 00:00:00.07,/Alia,50.19.7.187,EDS2 3A2-1711,,,,
    2011.06.02 00:01:06.51,EDS2 3A2-1711,BagSc,,,,,
    2011.06.02 00:01:08.09,EDS2 3A2-1711,TagIn,NAFZ2014850,,,,
    2011.06.02 00:01:09.68,EDS2 3A2-1711,MfDec,NAFZ2014850,R,,,
    2011.06.02 00:01:09.71,EDS2 3A2-1711,SendB,NAFZ2014850,50.2.4.3,960,R,
    2011.06.02 00:01:09.90,EDS2 3A2-1711,SentB,NAFZ2014850,50.2.4.3,,,
    2011.06.02 00:01:09.83,PO-2A-10G-3,WsRcv,NAFZ2014850,711,960,0,
    2011.06.02 00:01:10.33,PO-2A-10G-3,WsSho,NAFZ2014850,711,0,,
    2011.06.02 00:01:12.52,PO-2A-10G-3,WsDec,NAFZ2014850,711,0,R,
    Je ne comprends pas très bien où te veux en venir. Qu'est-ce que tu entends par trier la base de données ? Quant aux données, x lignes lues dans ton fichier csv te donnera x lignes dans la table de destination.

  10. #10
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    En gros ça serais de mettre ses données sur une seule ligne
    Exemple 10 lignes sur une seule ligne (multiplication des colonnes?)

    A quels fins? Reporting?

    Voyez du côté de PIVOT si c'est le cas (sujet maintes fois traité sur ce forum vous devriez trouver...).

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Sopotel
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Sopotel
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Effectivement c'est bien pour faire du reporting.

    En faite, je dois retracer les instructions faite par ma machine.

    Date Heure Machine
    2011.06.02 11:25:36.25, EDS2 3A2-1711, bagscan, tagin, mfdec, senB etc.
    tout cela mise sur une seule ligne.

    En gros j'utiliserai crystal report et avec un simple clique sur le nom de ma machine, j'ai un suivi de mes bagages.
    Ce qui permettra de calculer le nombre de bagages scannés par machines sur un jour, un mois, une année, et visualiser les différentes tâches.

Discussions similaires

  1. Importation des fichiers csv dans postgresql
    Par georex dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/04/2012, 11h51
  2. importer un fichier CSV dans SQL SERVER 2008
    Par ghir_ana dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/10/2011, 14h30
  3. Importer des fichiers CSV dans SQL Server avec SSIS
    Par nathantahiti dans le forum SSIS
    Réponses: 4
    Dernier message: 02/08/2011, 16h09
  4. Réponses: 6
    Dernier message: 20/04/2011, 12h11
  5. importer des fichiers mp3 avec sql server uniquement
    Par cool dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/04/2006, 13h21

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