Seite 1 von 1

[GELÖST] DB Migration MySQL nach LibreOffice

Verfasst: Sa 26. Okt 2013, 23:03
von wartburgritter
Guten Tag zusammen,

ich habe eine kleine Datenbank von MySQL nach LibreOffice migriert. Die Datenbank wurde zu einer Zeit erstellt, als es für Linux noch gar kein OpenOffice gab, daher in MySQL. Die Migration war gar nicht so schwierig, da ich ein sqlexport hatte. Ich habe ein anderes Probelem. Aus der MySQL Datenbanke habe ich früher mit folgendem Befehl csv-dateien erstellt.

Code: Alles auswählen

SELECT *
    INTO OUTFILE 'outdatei.csv'
    FIELDS
            TERMINATED BY ','
            OPTIONALLY ENCLOSED BY ''
    FROM `Tabellenname`
    ORDER BY `ID` ASC;
Obiges funktioniert unter LibreOffice nicht.

Unter LibreOffice konnte ich csv-dateien mit folgendem befehl exportieren

Code: Alles auswählen

SELECT *
    INTO TEXT "outdatei"
    FROM "Tabellenname"
    ORDER BY "ID" ASC;
Allerdings haben diese zwei Probleme.
- Alle deutschen Sonderzeichen sind Fragezeichen oder ähnliches.
- Bei neuen Tabellen werden leere Felder leer exportiert und aus der Importierten Tabelle werden leere Felder mit Anführungszeichen exportiert
Obwohl beide Tabellen meines Erachtens gleich sind (sind sie wohl aber nicht). Ich bin unter debian stable mit lo 3.5.4.2 unterwegs. Ich habe noch eine Beispieldatenbank angehängt.

gruss bernd

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 01:45
von F3K Total
Hi,
versuch mal dieses:

Code: Alles auswählen

CREATE TEXT TABLE EXPORT1("ID" INTEGER NOT NULL PRIMARY KEY,"nachname" VARCHAR(100),"vorname" VARCHAR(100),"antwort1" VARCHAR(100),"antwort2" VARCHAR(100));
SET TABLE EXPORT1 SOURCE "\EXPORT1.CSV;fs=\semi;ignore_first=false;encoding=UTF-8";
INSERT INTO EXPORT1 SELECT * FROM "Tabelle1";

CREATE TEXT TABLE EXPORT2("ID" INTEGER NOT NULL PRIMARY KEY,"nachname" VARCHAR(100),"vorname" VARCHAR(100),"antwort1" VARCHAR(100),"antwort2" VARCHAR(100));
SET TABLE EXPORT2 SOURCE "\EXPORT2.CSV;fs=\semi;ignore_first=false;encoding=UTF-8";
INSERT INTO EXPORT2 SELECT * FROM "Tabelle1";
Gruß R

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 20:47
von wartburgritter
Besten Dank für den sql-Befehl. Damit funktioniert es für mich auch für die kleine Testdatenbank, aber nicht für die eigentliche Tabelle mit 15 Spalten. Es werden immer noch Anführungszeichen exportiert. Hier ist mein Code. Ich hab Datenbank, Code und Ergebnis angehängt. Mittlerweile hab ich per backports libreoffice 4.1.0.4 auf mein debian wheezy installiert. Bin also ziemlich up to date. Beste Grüsse Bernd

Code: Alles auswählen

CREATE TEXT TABLE MATRIKEL95(
"ID" INTEGER NOT NULL PRIMARY KEY,
"Vorname" VARCHAR(100),
"Nachname" VARCHAR(100),
"matrikel95-email" VARCHAR(100),
"weiterleitung-email" VARCHAR(100),
"Fakultaet" VARCHAR(100),
"SEM-Gruppe" VARCHAR(100),
"Adresse deaktiviert" VARCHAR(100),
"Eintritt" VARCHAR(100),
"2001-12-Gesendet" VARCHAR(100),
"2001-12-Antwort" VARCHAR(100),
"2003-12-Gesendet" VARCHAR(100),
"2003-12-Antwort" VARCHAR(100),
"2005-06-Gesendet" VARCHAR(100),
"2005-06-Antwort" VARCHAR(100),
"Bemerkungen" VARCHAR(100)
);
SET TABLE MATRIKEL95 SOURCE "matrikel95.csv;   fs=\semi;   ignore_first=false;   encoding=UTF-8";
INSERT INTO MATRIKEL95 SELECT * FROM "Adresstabelle-Matrikel95" ORDER BY "ID" ASC;

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 21:51
von F3K Total
Nun,
wo ist das Problem mit den Anführungszeichen?
Wenn Du sie entfernen willst, kannst Du die .csv einmal mit Calc öffnen, Texttrenner Anführungzeichen und dann wieder als .csv exportieren, dann aber eben ohne Texttrenner, die sonstigen Einstellungen beibehalten (UTF8, Semikolon).
Siehe Anhang

Gruß R

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 22:30
von wartburgritter
F3K Total hat geschrieben:Nun,
wo ist das Problem mit den Anführungszeichen?
Ich erzeuge 8 csv-dateien jeweils mit verschiedener sortierung und verschiedenen Spalten. Darüber läuft ein perlscript und erzeugt html-dateien die ich dann auf den server hochlade. Ich müsste dann 8x im Editor öffnen Anführungszeichen auswählen ersetzen mit nichts speichern. Das perlscript funktioniert auch nach jahren noch wunderbar, nur meine perlkenntnissse sind nicht mehr die besten so dass ich lieber nicht versuchen will das Anführungszeichenproblem im perlscript zu lösen. Hätte ich evtl. sagen sollen, sorry. Ich versuche immer nicht ausschweifend zu sein.

Gruss Bernd

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 22:53
von F3K Total
Es gibt noch ein
SET TABLE MATRIKEL95 SOURCE "matrikel95.csv; fs=\semi; ignore_first=false;all_quoted=false;encoding=UTF-8";
, wie ich im HSQL Tutorial nachlese, aber mein erster Versuch hat nicht geklappt.
Forsch mal schön selber weiter.
Gruß R

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 23:15
von F3K Total
Geht doch, so:

Code: Alles auswählen

SET TABLE MATRIKEL95 SOURCE "matrikel95.csv;fs=\semi;ignore_first=false;all_quoted=false;quoted=false;encoding=UTF-8";
Gruß R

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 23:28
von wartburgritter
F3K Total hat geschrieben:Es gibt noch ein
SET TABLE MATRIKEL95 SOURCE "matrikel95.csv; fs=\semi; ignore_first=false;all_quoted=false;encoding=UTF-8";
, wie ich im HSQL Tutorial nachlese, aber mein erster Versuch hat nicht geklappt.
Forsch mal schön selber weiter.
Gruß R
Danke für den Tip mit dem Tutorial. Ich habe dort nachgelesen. http://hsqldb.org/doc/guide/ch06.html Folgendes führt zum Erfolg. Ist zwar für mich gemäss der Doku nicht nachvollziehbar warum, aber die Anführungszeichen werden nicht exportiert.

Code: Alles auswählen

quoted=false
Besten Dank nochmals Gruss Bernd

Re: DB Migration MySQL nach LibreOffice

Verfasst: So 27. Okt 2013, 23:34
von F3K Total
Ganz genau!
F3K Total hat geschrieben:Geht doch, so:
Code: Alles auswählen
SET TABLE MATRIKEL95 SOURCE "matrikel95.csv;fs=\semi;ignore_first=false;all_quoted=false;quoted=false;encoding=UTF-8";
Gruß R
Lesen bildet!
Gruß R