tabllenimport von daten aus Acces / Excel in MySQL
Korbinian Bachl
- datenbank
Hi, ich hab n problem,
jedesemal wenn ich eine tabelle aus Access / excel nach MySQL importieren will kommt die gleiche fehlermeldung, egal ob ich MyODBC benutze oder es als CSV importieren wil..
[TCX][MyODBC] parse error near 'llt varchar(50), Alter varchar(50), Inhalt varchar(50), DM double, Euro double, Kerku' at line 1 (#1064)
ich kann damit fast nix anfangen weil ich nicht kapier worauf der raus will... irgenwer ne idee ?
Korbinian
PS: die adresse bachl@okay.net, die ich letztens als email angegeben habe hatte irgen ein problem... funzte einige tage nicht , verschluckte nämlich nachrichten ohne bescheidzugeben :( bite um entschuldigung für fehlende andtworten
Hi Korbinian,
vielleicht liegt es an den Feldnamen, Access läßt nämlich einige Zeichen in Feldnamen zu, die in MySQL nicht gehen, und deine Fehlermeldung sieht so aus,
als ob die Feldnamen vorne oder hinten abgeschnitten sind?
Grüße
Stephan
Hi Korbinian,
[TCX][MyODBC] parse error near 'llt varchar(50), Alter varchar(50), Inhalt varchar(50), DM double, Euro double, Kerku' at line 1 (#1064)
ich hatte mal ein ähnliches Problem (ich weiss leider nicht mehr genau, ob es der Fehler war, den du beschreibst).
Lass doch mal beim Tabellenexport (über MyODBC) alle double-Felder weg.
Wenn es dann funktioniert, solltest du schauen, ob in den double-Spalten NULL-Werte drin sind. Wenn ja, durch 0 ersetzen.
so hat's zumindest bei mir geklappt ...
Viel Glück
Stephan
[TCX][MyODBC] parse error near 'llt varchar(50), Alter varchar(50), Inhalt varchar(50), DM double, Euro double, Kerku' at line 1 (#1064)
ich kann damit fast nix anfangen weil ich nicht kapier worauf der raus will... irgenwer ne idee ?
Ich fürchte, Du wirst Dich mit den entsprechenden Datenformaten befassen müssen.
Ich kenne nun keine der beteiligten Datenbanken, aber das Verfahren, wie man in eine SQL-Datenbank Daten importiert, ist vermutlich überall nahezu gleich und nicht viel anders, als ich es von Oracle kenne.
In der Import-Datei müssen zwei Informationen stehen:
a) eine Beschreibung des zu erzeugenden Objekts (also ein statement der Art "CREATE TABLE ...") und
b) eine Beschreibung der einzufügenden Datensätze.
Das Import-Programm wird versuchen, das Kommando zur Erzeugung der Tabelle auszuführen und anschließend in einer Schleife oder so die angegebenen Datensätze mit "INSERT" einzufügen.
Gemäß dieser Logik glaube ich, daß Dein "CREATE TABLE"-Statement zwischen Export-Erzeugung und Import-Anforderungen nicht kompatibel ist. Das würde erklären, wieso der Importer beim Parsen von Zeile 1 der Import-Datei aussteigt.
Die abgebildeten SQL-Fetzen sind Definitionen von Tabellenspalten. Beispielsweise bin ich nicht sicher, ob jede Datenbank den Typ VARCHAR bzw. DOUBLE unterstützt - hier irgendwo könnte das Problem sein. Zudem kann in diesem Statement auch stehen, wie groß die Tabelle werden soll, in welchem Tablespace sie angelegt werden soll usw. - hier gibt es viele Möglichkeiten, was syntaktisch) nicht passen könnte. SQL ist nicht gleich SQL.
Andererseits sieht der Anfang (!) der Fehlermeldung so aus, als würde der Parser mitten in einen String hineinspringen. Ich phantasiere mal wild: Vielleicht ist das "CREATE TABLE"-Statement zu lang für den Parser, wird von diesem in mehrere Zeilen zerlegt und ist dann nicht mehr syntaktisch korrekt? Das ließe sich überprüfen, indem Du den Import mit einer trivialen Tabelle (eine Spalte) probierst.
Es schadet sicher nichts, wenn Du Dir den Inhalt der Importdatei mal mit einem Editor ansiehst. Wenigstens das SQL-Statement wirst Du lesen können - die Daten dahinter möglicherweise nicht mehr.
Ich bin nicht der Meinung, daß Dein Problem am Inhalt der Tabelle liegt - so weit kommt der Importer ja gar nicht, sich damit zu befassen.
Es schadet sicher nichts, wenn Du Dir den Inhalt der Importdatei mal mit einem Editor ansiehst. Wenigstens das SQL-Statement wirst Du lesen können - die Daten dahinter möglicherweise nicht mehr.
Nachtrag: Wenn Du einen Terminal-Zugang zu Deiner MySQL-Datenbank hast, dann versuche doch einfach mal, das in der Import-Datei definierte SQL-Kommando dort im Dialog auszuführen.