2008-08-22 22 views
3

Quelqu'un a-t-il une technique pour générer des commandes SQL create table (et insert de données) pragmatiquement à partir d'un fichier CSV (ou feuille dans un fichier .xls)? J'ai un système de base de données tiers que je voudrais remplir avec des données provenant d'un fichier csv (ou d'une feuille dans un fichier xls) mais l'importateur fourni ne peut pas créer automatiquement la structure de la table comme c'est le cas importer. Mon fichier csv a beaucoup de tables avec beaucoup de colonnes donc je voudrais automatiser le processus de création de table ainsi que l'importation de données si possible mais je ne suis pas sûr de savoir comment générer l'instruction create ...CSV (ou feuille dans XLS) à SQL créer (et insérer) des déclarations avec .Net?

Répondre

1

Dans SQL server, il est aussi facile que

SELECT * INTO NewTablenNmeHere 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=C:\testing.xls','SELECT * FROM [Sheet1$]') 
1
BULK 
INSERT CSVTest 
     FROM 'c:\csvtest.txt' 
      WITH 
    (
       FIELDTERMINATOR = ',', 
       ROWTERMINATOR = '\n' 
    ) 
0

Malheureusement j'utilise un SQLEngine pour les systèmes embarqués de sorte qu'il ne supporte pas BULK INSERT ou sources de données OLEDB, ce qui est la raison pour laquelle je pensais prendre sql approche de génération d'instruction.

1

Je recommande de regarder csvkit. Sa fonction csvsql peut générer des instructions d'insertion de table, ou même les exécuter pour vous, à partir de la plupart des sources de données tabulaires.