Import de fichiers csv dans une database
damdam00
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Krysstof Messages postés 1489 Date d'inscription Statut Membre Dernière intervention -
Krysstof Messages postés 1489 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je parcours les tutoriels pour récupérer les données depuis un fichiers excel (enfin apparement il vaut mieu le transformer en csv avant). Mais cela à l'air de bien marcher si on importe table par table... Ma question arrive : est-il possible d'exporter les données de excel sachant que le tableau comporte sur une ligne tous les champs de toutes mes tables (en gros un NATURAL JOIN de toutes les tables)... Il faudrait néanmoins que je puisse séparer ces données pour les enregistrer dans les tables. Voila, si quelqu'un a compris ma question, il peut me faire signe
je parcours les tutoriels pour récupérer les données depuis un fichiers excel (enfin apparement il vaut mieu le transformer en csv avant). Mais cela à l'air de bien marcher si on importe table par table... Ma question arrive : est-il possible d'exporter les données de excel sachant que le tableau comporte sur une ligne tous les champs de toutes mes tables (en gros un NATURAL JOIN de toutes les tables)... Il faudrait néanmoins que je puisse séparer ces données pour les enregistrer dans les tables. Voila, si quelqu'un a compris ma question, il peut me faire signe
A voir également:
- Import de fichiers csv dans une database
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Borland database engine - Télécharger - Édition & Programmation
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
3 réponses
ouhh la
l'importation de fichier csv dans une base va nécessiter des données bien propre dans ton csv.
en gros un fichier CSV par table a importer, sinon il faudra utilser des bon gros soft de transformation de données bien cher et compliqués.
si tu fais du SQL2005 ou plus, tu as l'outil SSIS qui est fourni en standard, si tu utilise Oracle je crois qu'il y a un outil de transformation, mais je ne suis pas sur, si c'est du mysql, ya que tes doigts pour programmer des grosse routine de split des donnée (si tu veux conserver ton gros fichier joint)
après tout dépend des techno que tu utilise, de la manière dont tu veux faire cette importation (oneshot ou régulière, manuelle ou automatique)
dans certain cas il sera mieux de faire un petit programme, voir une macro excel qui se connecte à la base, dans d'autre cas l'importation de CSV (ou autre format de fichier plats) est obligatoire.
l'importation de fichier csv dans une base va nécessiter des données bien propre dans ton csv.
en gros un fichier CSV par table a importer, sinon il faudra utilser des bon gros soft de transformation de données bien cher et compliqués.
si tu fais du SQL2005 ou plus, tu as l'outil SSIS qui est fourni en standard, si tu utilise Oracle je crois qu'il y a un outil de transformation, mais je ne suis pas sur, si c'est du mysql, ya que tes doigts pour programmer des grosse routine de split des donnée (si tu veux conserver ton gros fichier joint)
après tout dépend des techno que tu utilise, de la manière dont tu veux faire cette importation (oneshot ou régulière, manuelle ou automatique)
dans certain cas il sera mieux de faire un petit programme, voir une macro excel qui se connecte à la base, dans d'autre cas l'importation de CSV (ou autre format de fichier plats) est obligatoire.
En fait, je ne vais pas pouvoir splitter manuellement le fichier excel, car tout doit être géré automatiquement.
Mais comme mes tables contiennent des clé étrangères (normal quoi, faut bien que les tables soient liées entre elles), et que le tableau qui arrivera en input contient toutes les données de tous les champs de ma table... C'est sur que sous mysql, faut faire de longues et compliquées routines de split? y'a pas un moyen plus simple? L'importation se fera de façons occasionnelle, mais je ne serais plus la pour la gérer, ce seront des utilisateurs quelconques qui le feront! En gros j'ai une interface php qui leur demande de rentrer le fichier, et c'est censé automatiquement prendre toutes les données de tous les champs, puis les enregistrer dans la base de donnée ...
Jsuis dans la mouise c'est ça? :S
Mais comme mes tables contiennent des clé étrangères (normal quoi, faut bien que les tables soient liées entre elles), et que le tableau qui arrivera en input contient toutes les données de tous les champs de ma table... C'est sur que sous mysql, faut faire de longues et compliquées routines de split? y'a pas un moyen plus simple? L'importation se fera de façons occasionnelle, mais je ne serais plus la pour la gérer, ce seront des utilisateurs quelconques qui le feront! En gros j'ai une interface php qui leur demande de rentrer le fichier, et c'est censé automatiquement prendre toutes les données de tous les champs, puis les enregistrer dans la base de donnée ...
Jsuis dans la mouise c'est ça? :S
tu ne peux importer des CSV que dans une seule table a la fois.
donc tu importe ton GROOOOOS fichier dans une table temporaire que tu ne crée que pour cet import
une fois que ton fichier et dans la base, faut coder la routine de split
pas d'autre solution, ou alors go SQL Server, et SSIS (le module d'intgration de donnée de microsoft qui fait ca a la volée au chargement.)
si qqun a un outil "libre" qui fait le boulot d'un ETL (la famille de soft qui gère les chargement de donnée) ca pourrait aider, moi j'en connais pas.
donc tu importe ton GROOOOOS fichier dans une table temporaire que tu ne crée que pour cet import
une fois que ton fichier et dans la base, faut coder la routine de split
pas d'autre solution, ou alors go SQL Server, et SSIS (le module d'intgration de donnée de microsoft qui fait ca a la volée au chargement.)
si qqun a un outil "libre" qui fait le boulot d'un ETL (la famille de soft qui gère les chargement de donnée) ca pourrait aider, moi j'en connais pas.