Accueil > Forum > > > > SQL server 2008, import données CSV
SQL server 2008, import données CSV
mardi 21 juillet 2009 à 13:43:17 |
SQL server 2008, import données CSV

livinho38
|
Bonjour
je dispose de plusieurs fichiers CSV, pr favoriser les futures requete il esdt interessant de lier les tables en fonctions de date.
Cependant dans mon fichier CSV la date se trouve dans 3 colonnes, jour ,mois,année,
la colonne mois est de la forme suivante: Jan. ; Fév. ; Mars ; ...
j'ai donc créé une table mois contenant 2 colonne: Id_mois ; mois
pour pouvoir faire le lien entre le nom du mois et son numéro.
j'aimerai donc kan je recupere mes données du fichier CSV, transformer le mois en numéro grace à cette table (mais coment?), mais aussi pour facilité les requete en fonction des date, mettre dans une seule colonne jour/mois/année.
est-ce possible et si oui comment?
je vous remercie pour votre aide. je débute en SQL server et je galere bien
Olivier
|
|
mardi 21 juillet 2009 à 14:00:55 |
Re : SQL server 2008, import données CSV

nhervagault
|
Salut,
Regardes du coté de SSIS pour faire les modification.
SSIS est l'ETL de sqlserveur fournit à partir de la version standard.
Il faut les outils clients sur ton poste.
Bon dev.
|
|
mardi 21 juillet 2009 à 14:07:36 |
Re : SQL server 2008, import données CSV

livinho38
|
oué c ce que je fait
je travail sur SQL Server 2008 version entreprise.
j'essai avec visual studio des procedure mais pour le moment je ne trouv pas comment faire ça
si tu as une idee.;
merci en tt k
|
|
mardi 21 juillet 2009 à 14:56:17 |
Re : SQL server 2008, import données CSV

nivsql
|
A ta place je chercherais du coté de la puissante fonction CONVERT et du flag 107 qui vas avec.
Voici un exemple que je viens de faire sur mon serveur de test :
create table DATE_TEST (Jour char(2), mois char(50), année char(4));
mon jeu de test :
05 mai 2008
05 juillet 2008
05 janvier 2008
05 janv 2009
Requete 1 :
select convert(datetime, mois + ' '+ jour + ',' + année, 107) from DATE_TEST;
Resultat 1 me rendant un type DATETIME (plus facile a manipuler ultierieurement) :
2008-05-05 00:00:00.000
2008-07-05 00:00:00.000
2008-01-05 00:00:00.000
2009-01-05 00:00:00.000
Requete 2 :
select convert(varchar,convert(datetime, mois + ' '+ jour + ',' + année, 107),103) from DATE_TEST;
Me rendant un type Varchar :
05/05/2008
05/07/2008
05/01/2008
05/01/2009
Je pense qu'avec ca tu devrais t'en sortir.
|
|
mardi 21 juillet 2009 à 16:02:29 |
Re : SQL server 2008, import données CSV
|
mercredi 22 juillet 2009 à 09:49:29 |
Re : SQL server 2008, import données CSV

livinho38
|
Merci de ta réponse,
mais je vois pas trop comment utilisé sa, en fait je réexplique le contexte:
je dispose de plusieurs fichiers CSV, ceux ci dispose tous de date découper en plusieurs colones :
Jour: 25 | Mois: Oct. | Année : 2008 | Trimestre : Q.4 | Semaine calentaire : Semaine 43 | Jour de l'année: 299 |
j'ai alors creer une table Mois contenant 2 colonne : Id_mois : 1 | mois : Janvier
sous studio je recupere un fichier plat (mon csv) je converti les données, je fait une recherche sur la case mois afin de récuperer l'id correspondant,
je sais pas si c'est une bonne méthode, qu'en pensez vous? mais j'obtien bien un mois en int.
maintenna , pour facilité les requete ultérieur , il me faudrait une date au format date JJ/MM/AAAA dans une colonne.
J'ai donc l'idee de creer une table Date qui contient les données cité tout en haut, ET une colonne date du format JJ/MM/AAAA. mais je ne sais pas comment creer et instancier cette colonne
je dois utiliser Studio puisque je dois realiser des pakage qui seront lancer chaque jour.
est-ce clair? est-ce que je part dans la bonne direction? tes requete ci dessus sont elles adaptable ? cela fait beaucoup de question mais j'ai beaucoup de pb ^^
merci bcp d'avance.!
|
|
mercredi 22 juillet 2009 à 10:22:04 |
Re : SQL server 2008, import données CSV

nivsql
|
Pour moi tu fais totalement fausse route et tu te complique terriblement la vie.
Un fichier CSV est un fichier normé, typiquement le type de fichier que tu peux inséré dans une table temporaire via la commande BULK INSERT !
Une fois dans ta table temporaire tu peux commencer par nettoyer tes données (en enlevant le . a la fin de l'abreviation du mois, je te laisse chercher par toi meme les fonction de traitement de chaine de caractere)
Une fois ces données propres tu les transforme vial le type de code que je t'ai donné, et tu les insert dans une table définitive sous la forme de ton choix !
Sequence :
Create table #tempCSV (mescolonnes du fichier CSV...)
BULK INSERT #tempCSV FROM FILE='monfichier.csv' WITH ... (description du fichier, séparateur, fin de ligne)
UPDATE #tempCSV SET macolonne1 = fnc(macolonne1), ...(traitement des colonnes)
insert into MaTableDefinitive
select fnc(macolonne1 + macolonne3), ... From #tempCSV;
tu positionne les convert que je t'ai donnée précédement dans le select du dernier insert et tu a une table au petit oignons pour tes utilisateurs.
Tu n'aura fait QUE du sql (pas besoin de SSIS ni de visual studio, juste management studio), ton traitement sera totalement ensembliste (et non iteratif) et tout ca le plus simplement du monde.
|
|
mercredi 22 juillet 2009 à 10:26:39 |
Re : SQL server 2008, import données CSV

nivsql
|
J'ai oublier de préciser que pour faciliter les requete utilisateurs il est préférable de stoker les date au format DATETIME (donc pas de format ^^) et de leur présenter les données via une vue sur la table ou la colonne date sera transformer via un convert(varchar, macolonneDate, 103) qui leurs présentera les données au format JJ/MM/AAAA.
|
|
mercredi 22 juillet 2009 à 10:53:09 |
Re : SQL server 2008, import données CSV

livinho38
|
d'accord je vais essayer de partir dans se sens, mais cela implique d'avoir autant de base temporaire que de fichier CSV ??
ensuite est-ce possible de realiser tout ça sans passer par des requete isolé mais par visual studio?
|
|
mercredi 22 juillet 2009 à 12:06:06 |
Re : SQL server 2008, import données CSV

nivsql
|
Pas des bases mais des tables, et il t'en faut autant que tu a de TYPE de fichier CSV, sinon tu peux importer tous les fichers CSV de meme structure dans une seule table temporaire.
Tu peux bien evidement porter tout ca dans SSIS via Visual Studio et la box "Lancer un lot T-SQL".
|
|
Cette discussion est classée dans : données, sql, server, csv, mois
Répondre à ce message
Sujets en rapport avec ce message
liaison de données dans SQL Server [ par titoune76 ]
Comment faire dans SQL Server pour créer une vue selectionnant plusieurs champs de plusieurs tables (jusque la pas de pb), ces tables se situant dans
Lignes et colonnes [SQL-server] [ par paf le chien ]
Bonjour à tous, je vous présente mon petit problème : J'ai des fichiers au formats CSV qui contiennent des données. Je veux stocker ces données dans
Réplication SQL Server 2000 [ par white_mage ]
Hello tout le monde.... J'ai un gros problème avec une réplication avec fusion sur SQL server 2k. J'espère que quelqu’un pourra m’aider…..J’ai une rép
Duplication de données [ par erwan35 ]
Bonjour à tous,Je vais mettre en place dans mon entreprise un logiciel dont les données proviendront d'une base de données SQL SERVER EXPRESS 2005.La
Sql server utf-8 [ par dirthangel ]
Salut a tous je travaille actuellement sur une application Perl , j'utilise comme base de données Sql server 2005 j'ai besoin d'y stocker des données
Problème de connexion SQL SERVER 2005 / FREEBOX [ par marcofelipe ]
Bonjour,Voila mon problème : J'ai créé une base de données sur SQL SERVER 2005 pour créer une application sur un serveur d'application et pourvoir l'u
les sauvegarde de base de données [ par ghano81 ]
bonjour jé créer une base de données en sql server 2005,japplique sur ces tables des operations (ajout ,modification , suppression ) ce qui m'interes
Lien entre SQL Server 2005 et MySQL [ par Edohan ]
Voilà, je travaille actuellement sur une solution de workflow basée sur une Base de Données SQL Server 2005. J'ai en parallèle des Base de Données so
Accès SQL Server - SSPI [ par cuttysark ]
Bonjour,L'application est un ERP qui accède à la base de données ACCESS.Suite à une modification de code pour une utilisation possible de la base SQL
Comment sauvegarer une base de données en SQL server 2005 Express [ par cybercop ]
bonjour jé créer une base de données en sql server 2005,alors je ne sais pas comment faire sauvegarder la base pour trransferer un autre PC avec la s
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : ORACLE FORMSRE : ORACLE FORMS par csmahicham
Cliquez pour lire la suite par csmahicham
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|