DB Ausgabe nach CSV
Moderator: Moderatoren
DB Ausgabe nach CSV
Hallo,
ich habe mir die portable Version 3.2.0 installiert und komme nicht mit der Ausgabe der Datenbank klar
In der Datenbank sind Einträge mit Umlauten ÄÜß etc. enthalten und die sollen so natürlich auch ausgegeben werden. Z.B in eine CSV-Datei.
Testhalber habe ich einige Einträge vorgenommen und diese dann über SQL
SELECT * INTO TEXT "meine_csv" FROM "Test"
als CSV-Datei ausgeben lassen. Allerdings sind dort nun keine Umlaute enthalten sondern an deren Stelle nur Fragezeichen.
Was habe ich da wo falsch eingegeben? Bzw. welche einfache Möglichkeit gibt es meine Daten aus Base in eine CSV auszugeben?
Bisher habe ich mich nicht mit Base beschäftigt und habe einfach einen Schnellversuch für einen Projekttest versucht
Freue mich auf jeden hilfreichen Hinweis. Danke für eure Aufmerksamkeit
Gruß Jang
ich habe mir die portable Version 3.2.0 installiert und komme nicht mit der Ausgabe der Datenbank klar
In der Datenbank sind Einträge mit Umlauten ÄÜß etc. enthalten und die sollen so natürlich auch ausgegeben werden. Z.B in eine CSV-Datei.
Testhalber habe ich einige Einträge vorgenommen und diese dann über SQL
SELECT * INTO TEXT "meine_csv" FROM "Test"
als CSV-Datei ausgeben lassen. Allerdings sind dort nun keine Umlaute enthalten sondern an deren Stelle nur Fragezeichen.
Was habe ich da wo falsch eingegeben? Bzw. welche einfache Möglichkeit gibt es meine Daten aus Base in eine CSV auszugeben?
Bisher habe ich mich nicht mit Base beschäftigt und habe einfach einen Schnellversuch für einen Projekttest versucht
Freue mich auf jeden hilfreichen Hinweis. Danke für eure Aufmerksamkeit
Gruß Jang
Re: DB Ausgabe nach CSV
Hi,
du kannst die Tabelle per Copy/Paste oder bei angemeldeter Datenbank per drag and drop in ein Calc Dokument schieben.
Ist die Datenbank angemeldet, sind die Daten sogar verknüpft und können beim Öffnen der Calc-Datei automatisch aktualisiert werden.
Aus Calc kannst du als .csv speichern, dann klappt's auch mit den Umlauten, siehe z.B. Videotutorial 9 (meine Signatur)
Gruß R
du kannst die Tabelle per Copy/Paste oder bei angemeldeter Datenbank per drag and drop in ein Calc Dokument schieben.
Ist die Datenbank angemeldet, sind die Daten sogar verknüpft und können beim Öffnen der Calc-Datei automatisch aktualisiert werden.
Aus Calc kannst du als .csv speichern, dann klappt's auch mit den Umlauten, siehe z.B. Videotutorial 9 (meine Signatur)
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: DB Ausgabe nach CSV
Hallo,
Danke für deinen Hinweis. Werde ich mir näher ansehen. Eben habe ich aber auch noch diesen Hinweis gefunden, der wohl auch passt.
Bisher habe ich noch nicht verstanden warum und weshalb ich eine Datenbank anmelden sollte ... und diese deshalb nicht angemeldet. Muss ich mich erst mal etwas einlesen und alles mit mehr Ruhe ansehen.
Gruß Jang
Danke für deinen Hinweis. Werde ich mir näher ansehen. Eben habe ich aber auch noch diesen Hinweis gefunden, der wohl auch passt.
Bisher habe ich noch nicht verstanden warum und weshalb ich eine Datenbank anmelden sollte ... und diese deshalb nicht angemeldet. Muss ich mich erst mal etwas einlesen und alles mit mehr Ruhe ansehen.
Gruß Jang
Re: DB Ausgabe nach CSV
Hallo Jang,
verschiedene Möglichkeiten:
- Tabelle über das Kontextmenü kopieren und in Calc einfügen (einfachste Variante, geht auch mit Drag and Drop)
- Dauerhafte Lösung in der Datenbankdatei: Datenbankdatei entpacken, in das Unterverzeichnis "database" gehen und dort die Datei "properties" um den Eintrag
textdb.encoding=UTF-8
ergänzen. Die gesamte Datei properties sieht dann so aus:
Anschließend das Verzeichnis database ind der *.odb-Datei löschen und das bearbeitete Verzeichnis einfügen - es sei denn, Dein Packprogramm lässt es auch zu, dass einzelne Dateien in Unterverzeichnissen ersetzt werden - dann also nur die Datei "properties" ersetzen. All diese Schritte würde ich mit einer Kpopie Deiner Datenbank machen - nicht direkt am Original herumexperimentieren!
Mit der Einstellung habe ich gerade einen Export mit Sonderzeichen hin bekommen. Allerdings habe ich nicht Deine Office-Version, aber die Datenbank ist ja gleich geblieben.
- Was natürlich auch noch geht ist, dass Du vorher eine entsprechende Tabelle mit einer entsprechenden Einstellung importierst, wie Dies in dem Beitrag passiert, den Du auf der englischsprachigen Liste gefunden hast. Ich würde dazu einfach einmal den (erfolglosen) Export machen und alle Daten in der entstandenen Datei löschen. Dann hast Du die Spaltenköpfe und den Dateinamen.
Anschließend reicht ein
aus. Dann hat die HSQLDB die Information, in welchem Zeichensatz die Tabelle existiert und exportiert auch in diesem Zeichensatz.
Vorsicht! So exportierte Datein werden auch innerhalb der Base-Datei weiter angezeigt. Base erwartet also diese Dateien weiterhin in dem Verzeichnis, in dem die Datenbank selbst auch liegt. Die Einträge in der Datenbankdatei bleiben weiter enthalten, auch wenn Du die *.csv-Dateien anschließend entfernst.
Gruß
Robert
verschiedene Möglichkeiten:
- Tabelle über das Kontextmenü kopieren und in Calc einfügen (einfachste Variante, geht auch mit Drag and Drop)
- Dauerhafte Lösung in der Datenbankdatei: Datenbankdatei entpacken, in das Unterverzeichnis "database" gehen und dort die Datei "properties" um den Eintrag
textdb.encoding=UTF-8
ergänzen. Die gesamte Datei properties sieht dann so aus:
Code: Alles auswählen
#HSQL Database Engine 1.8.0.10
#Sat Mar 14 19:05:00 CET 2015
hsqldb.script_format=0
runtime.gc_interval=0
sql.enforce_strict_size=true
hsqldb.cache_size_scale=8
readonly=false
hsqldb.nio_data_file=false
hsqldb.cache_scale=13
version=1.8.0
hsqldb.default_table_type=cached
hsqldb.cache_file_scale=1
hsqldb.lock_file=true
hsqldb.log_size=10
modified=no
hsqldb.cache_version=1.7.0
hsqldb.original_version=1.8.0
hsqldb.compatible_version=1.8.0
textdb.encoding=UTF-8
Mit der Einstellung habe ich gerade einen Export mit Sonderzeichen hin bekommen. Allerdings habe ich nicht Deine Office-Version, aber die Datenbank ist ja gleich geblieben.
- Was natürlich auch noch geht ist, dass Du vorher eine entsprechende Tabelle mit einer entsprechenden Einstellung importierst, wie Dies in dem Beitrag passiert, den Du auf der englischsprachigen Liste gefunden hast. Ich würde dazu einfach einmal den (erfolglosen) Export machen und alle Daten in der entstandenen Datei löschen. Dann hast Du die Spaltenköpfe und den Dateinamen.
Anschließend reicht ein
Code: Alles auswählen
SET TABLE "Tabbelnname" SOURCE "xyz.csv;encoding=UTF-8";
Vorsicht! So exportierte Datein werden auch innerhalb der Base-Datei weiter angezeigt. Base erwartet also diese Dateien weiterhin in dem Verzeichnis, in dem die Datenbank selbst auch liegt. Die Einträge in der Datenbankdatei bleiben weiter enthalten, auch wenn Du die *.csv-Dateien anschließend entfernst.
Gruß
Robert
Re: DB Ausgabe nach CSV
Hallo Robert,
Gruß Jang
Das war es auf Anhieb! Danke! Und von dort aus dann exportiert. Und natürlich werde ich mich später auch mit deinen weiteren Hinweisen beschäftigen. Erstmal freue ich mich über ein kleines aber wichtiges ErfolgserlebnisTabelle über das Kontextmenü kopieren und in Calc einfügen (einfachste Variante,
Gruß Jang
Re: DB Ausgabe nach CSV
Hallo Robert,
auf den zweiten Blick ist es das auch nicht .. das Kopieren der DB-Tabelle nach Calc. In der DB-Tabelle habe ich nur TEXT-Felder, die aber auch mit Datumsangaben gefüllt sind. Beim Kopieren nach Calc werden diese Felder wieder automatisch mit dem Datumsformat formatiert. Das soll aber nicht sein.
Mein Export nach CSV wie im englischen Forum beschrieben konnte übrigens nicht funktionieren. Ich hatte eine Fehlermeldung in SQL übersehen.
Ich hab meine Datenbank angelegt, in dieser eine Tabelle die außer dem ID-Feld (Integer,Auto) nur noch weitere Felder als Varchar enthält. Eine einfache Geschichte. Alle Umlaute in diesen Datensätzen sollen natürlich bei einem Export vorhanden sein. Und Datumseingaben sind dort ja als Varchar-Typ abgelegt und sollen auch so bei einem Export erhalten bleiben. Alles aus der Datenbank soll halt so wie in der DB abgelegt in eine CSV geschrieben werden.
Ich dachte das wäre ein Klacks mit Openoffice ... ist es wohl aber nicht . Hat mich heute schon ziemlich frustriert.
Lege die Geschichte erstmal ein paar Tage auf Eis ... da ich derzeit da gar nicht mehr durchblicke
Allen noch einen schönen Restsonntag und einen guten Wochenbeginn.
MfG Jang
auf den zweiten Blick ist es das auch nicht .. das Kopieren der DB-Tabelle nach Calc. In der DB-Tabelle habe ich nur TEXT-Felder, die aber auch mit Datumsangaben gefüllt sind. Beim Kopieren nach Calc werden diese Felder wieder automatisch mit dem Datumsformat formatiert. Das soll aber nicht sein.
Mein Export nach CSV wie im englischen Forum beschrieben konnte übrigens nicht funktionieren. Ich hatte eine Fehlermeldung in SQL übersehen.
Weshalb es ja auch nie bei mir funktionieren konnte und die Umlaute danach eben nicht vorhanden waren. Mein Fehler. Nur welche Table wird da nun nicht gefunden? Meine Tabelle hat doch die Bezeichnung Anzeigen.1: Table not found in statement [SET TABLE "Anzeigen" SOURCE "MyOutputFile.CSV;ignore_first=false;all_quoted=false;encoding=UTF-8"]
Ich hab meine Datenbank angelegt, in dieser eine Tabelle die außer dem ID-Feld (Integer,Auto) nur noch weitere Felder als Varchar enthält. Eine einfache Geschichte. Alle Umlaute in diesen Datensätzen sollen natürlich bei einem Export vorhanden sein. Und Datumseingaben sind dort ja als Varchar-Typ abgelegt und sollen auch so bei einem Export erhalten bleiben. Alles aus der Datenbank soll halt so wie in der DB abgelegt in eine CSV geschrieben werden.
Ich dachte das wäre ein Klacks mit Openoffice ... ist es wohl aber nicht . Hat mich heute schon ziemlich frustriert.
Lege die Geschichte erstmal ein paar Tage auf Eis ... da ich derzeit da gar nicht mehr durchblicke
Allen noch einen schönen Restsonntag und einen guten Wochenbeginn.
MfG Jang
Re: DB Ausgabe nach CSV
Hallo Jang,
mache die folgenden Schritte:
Schließe anschließend die Base -Datei.
Suche die Datei "Ausgabe.csv" in dem Verzeichnis auf und leere sie von allem Inhalt und kopiere sie nach anderswo hin. (Kann sein, dass die Kopie nicht nötig ist)
Öffne die Basedatei und gebe folgendes ein:
Diese Tabelle wird erst einmal leer sein, jetzt aber hoffentlich das richtige Encoding besitzen.
Danach wieder
und der Text erscheint hoffentlich in der entsprechenden Tabelle und mit den Sonderzeichen.
Ich habe das nicht weiter ünerprüft. Gib also einmal Rückmeldung, ob das klappt.
Die Variante mit der Einstellung des Encodings innerhalb der Base-Datei klappt auf jeden Fall, ist bloß etwas trickreicher.
Warum Du mit der Datumseinstellung nichts anfangen kannst (in der von Calc exportiereten CSV-Datei macht das doch nichts ...), ist mir nicht ganz klar.
Gruß
Robert
mache die folgenden Schritte:
Code: Alles auswählen
SELECT * INTO TEXT "Ausgabe" FROM "Anzeigen"
Suche die Datei "Ausgabe.csv" in dem Verzeichnis auf und leere sie von allem Inhalt und kopiere sie nach anderswo hin. (Kann sein, dass die Kopie nicht nötig ist)
Öffne die Basedatei und gebe folgendes ein:
Code: Alles auswählen
SET TABLE "Ausgabe" SOURCE "Ausgabe.csv;encoding=UTF-8";
Danach wieder
Code: Alles auswählen
SELECT * INTO TEXT "Ausgabe" FROM "Anzeigen"
Ich habe das nicht weiter ünerprüft. Gib also einmal Rückmeldung, ob das klappt.
Die Variante mit der Einstellung des Encodings innerhalb der Base-Datei klappt auf jeden Fall, ist bloß etwas trickreicher.
Warum Du mit der Datumseinstellung nichts anfangen kannst (in der von Calc exportiereten CSV-Datei macht das doch nichts ...), ist mir nicht ganz klar.
Gruß
Robert
Re: DB Ausgabe nach CSV
Hallo Robert,
Danke für deine Geduld mit mir
Nach deiner letzten Anleitung hat es leider auch nicht geklappt. Da kam es immer zu dieser Meldung:
Und dank deinem Hinweis wie ich die Datei anpassen kann ... habe ich wieder dazugelernt! Denn vorher wusste ich gar nicht das die DB in gepackter Form vorliegt etc.
Nach meiner Anpassung wird die CSV so erstellt wie es sein soll! Super! Und natürlich hast du Recht - die Formatierung des Datums spielt da gar keine Rolle! Lediglich bei einem späteren Import nach Calc ... aber da kann man dann ja die entsprechenden Spalten wieder mit dem richtigen Format setzen.
Danke für deine für mich wirklich hilfreichen Hinweise. Damit ist mein Problemchen gelöst.
MfG Jang
Danke für deine Geduld mit mir
Nach deiner letzten Anleitung hat es leider auch nicht geklappt. Da kam es immer zu dieser Meldung:
Aber ich habe nun deinen obrigen Vorschlag befolgt und die Datei properties verändert. Es klappte aber erst mit dem Eintrag textdb.encoding=ansi, erst damit waren die Umlaute vorhanden.1: Table already exists: Ausgabe in statement [SELECT * INTO TEXT "Ausgabe" FROM "Anzeigen"]
Und dank deinem Hinweis wie ich die Datei anpassen kann ... habe ich wieder dazugelernt! Denn vorher wusste ich gar nicht das die DB in gepackter Form vorliegt etc.
Nach meiner Anpassung wird die CSV so erstellt wie es sein soll! Super! Und natürlich hast du Recht - die Formatierung des Datums spielt da gar keine Rolle! Lediglich bei einem späteren Import nach Calc ... aber da kann man dann ja die entsprechenden Spalten wieder mit dem richtigen Format setzen.
Danke für deine für mich wirklich hilfreichen Hinweise. Damit ist mein Problemchen gelöst.
MfG Jang
Re: DB Ausgabe nach CSV
Hallo Jang,
ich habe das mit der vorherigen Erstellung der Tabelle jetzt auch einmal probiert. Klappt tatsächlich nicht.
Was beliebt ist also lediglich die Änderung der Einstellung direkt in der *.odb-Datei in der Unterdatei /database/properties.
textdb.encoding=ansi dann wohl für Windows, textdb.encoding=UTF-8 entsprechend für Linux.
Gruß
Robert
ich habe das mit der vorherigen Erstellung der Tabelle jetzt auch einmal probiert. Klappt tatsächlich nicht.
Was beliebt ist also lediglich die Änderung der Einstellung direkt in der *.odb-Datei in der Unterdatei /database/properties.
textdb.encoding=ansi dann wohl für Windows, textdb.encoding=UTF-8 entsprechend für Linux.
Gruß
Robert
Re: DB Ausgabe nach CSV
Hallo,
mit einer angemeldeten Testdatei samt Umlauten ausprobiert (Eingabe via Extras-SQL):
Ergebnisse:
Die Änderung des Ausgabezeichensatzes und der Trennzeichen ist auch innerhalb der Benutzeroberfläche möglich.
LO scheint die Ausgabedatei offen zu halten und weigert sich einen zweiten Export in dieselbe Tabelle durchzuführen.
Ein Export in eine weitere Datei, die noch nicht existierte war aber problemlos.
Aufcsv2 ist mit Semikolon getrennt und enthält Umlaute, die zu Windows-Standarteinstellungen passen.
Aufcsv war dagegen Komma-getrennt und enthielt Fragezeichen für alle "seltsamen" Zeichen, also wohl ASCII-konform.
MfG, Jörn
Ich habe mal (inspiriert durch diesen Beitrag https://forum.openoffice.org/en/forum/v ... 609ec1fde2 ) die folgenden Kommandos unter Libre Office 4.3.5.2RobertG hat geschrieben: Was beliebt ist also lediglich die Änderung der Einstellung direkt in der *.odb-Datei in der Unterdatei /database/properties.
mit einer angemeldeten Testdatei samt Umlauten ausprobiert (Eingabe via Extras-SQL):
Code: Alles auswählen
SELECT * INTO TEXT "Aufcsv" FROM "Aufgaben";
set property "textdb.fs" '\semi';
set property "textdb.encoding" 'ansi';
SELECT * INTO TEXT "Aufcsv2" FROM "Aufgaben";
Die Änderung des Ausgabezeichensatzes und der Trennzeichen ist auch innerhalb der Benutzeroberfläche möglich.
LO scheint die Ausgabedatei offen zu halten und weigert sich einen zweiten Export in dieselbe Tabelle durchzuführen.
Ein Export in eine weitere Datei, die noch nicht existierte war aber problemlos.
Aufcsv2 ist mit Semikolon getrennt und enthält Umlaute, die zu Windows-Standarteinstellungen passen.
Aufcsv war dagegen Komma-getrennt und enthielt Fragezeichen für alle "seltsamen" Zeichen, also wohl ASCII-konform.
MfG, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Re: DB Ausgabe nach CSV
Hallo Jörn,
hast Recht, das Encoding kann auch geschrieben werden, bevor die Tabelle geschrieben wird.
Es reicht
um anschließend das Ergebnis in ansi-Encoding zu haben.
Werde ich auch noch ins Handbuch übernehmen.
Gruß
Robert
hast Recht, das Encoding kann auch geschrieben werden, bevor die Tabelle geschrieben wird.
Es reicht
Code: Alles auswählen
set property "textdb.encoding" 'ansi';
Werde ich auch noch ins Handbuch übernehmen.
Gruß
Robert