Csv datei in sql übernehmen

hallo leute,

kann mir jemand sagen wie die syntax in einer datenbank aussehen muss um eine csv sauber reinzuladen?
mit einer sql datenbank.

ich hab eine excel tabelle die mit werten gefüllt ist.
diese werte will ich in sql übernehmen.
sonst muss ich ja immer mit:
insert into … vlaues()
das sind aber über 30.000 artikel!!!

Hallo!

Fangen wir mal mit der einfachsten Lösung an.
Hast du es mal mit dem Import in eine DB probiert?
( DB auswählen recht Maus und dann Task Daten importieren)

Ich hoff das das deine Lösung ist.
Christian

Hallo,

das sollte relativ einfach funktionieren; etwa so:
LOAD FROM „“ INSERT INTO .

Ggf. muss man noch das Delimiterzeichen definieren falls es verschieden von dem in der Datenbank verwendeten (i.d.R. „|“) ist, z.B.: „DELIMITER ;“

Dabei steht für den Excel-Export incl. Pfad und ist eben die Tabelle in die eingefügt werden soll.

Wichtig ist, dass csv-Datei und Tabelle die selbe Anzahl an Spalten haben und die Datentypen übereinstimmen.

Gruß
Erhard

hallo leute,

kann mir jemand sagen wie die syntax in einer datenbank
aussehen muss um eine csv sauber reinzuladen?
mit einer sql datenbank.

Das funktioniert bequem über den Datenimport:
Datenquelle auswählen und importieren. Gibts aber nur in der SQL Vollversion nicht im „Express“

Vielleicht mal ein erster Denkanstoß…

…unter phpMyAdmin (import) kann man eine CSV datei direkt in mySQL einlesen, hab ich zwar bislang noch nie probiert… aber ich denke zumindest eine Tabellendefinition mit den entsprechenden Feldern müsste auf der Datenbank angelegt sein…

mfg ER

Hallo Viper,

ein Import ist mit dem BULK Insert möglich.

Ich habe es bis jetzt nur hinbekommen, wenn der Aufbau der SQL-Table genauso ist wie die der CSV. Also auch die Spaltenreihenfolge.

hier die Syntax für meinen Import für MSSQL

USE

BULK
INSERT
FROM ‚c:\temp\Sachkontenstamm SKR04Passt.csv‘
WITH
(
FIELDTERMINATOR = ‚,‘,
ROWTERMINATOR = ‚\n‘,
CODEPAGE = ‚ACP‘
)
GO

select * from DIVFIBUKONTEN
go

Aus irgendwelchem Gründen (wahrscheinlich durch die englische Codepage), akzeptiert mein SQLServer das Semikolon nicht. Ich habe also das Zeichen durch das Komma ersetzt.

Hallo Leute,
erstmal vielen Dank für euere super hilfe.
Ich werd dann mal anfangen euere Ideen umzusetzten.

Einen schönen Tag noch!
LG ViperGTS

Hallo Viper,

csv direktimport geht - aber nicht per phpMyAdmin.
Der Befehl LOAD DATA INFILE muss mit dem Dateinamen der CSV-Datei gefüttert werden. Du brauchst also ne Kommandozeile, auf der du den mysql Client startest.
Details, und auch der Hinweis auf eine weitere Möglichkeit (mysqlimport utility) hier:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
bzw.
http://dev.mysql.com/doc/refman/5.1/de/load-data.html

Gruß
Thomas

Leider schreiben Sie nicht mit welcher Datenbank Sie arbeiten. Die meisten Datenbanken haben ein Toolset (z.B. SQL Mangement Studio bei MS SQL Server), mit dem Sie einen Datenimport durchführen können. Dort wird dann das Datenformat (hier: csv) definiert.