OO-Calc (.sxc) in SQL-Tabell

OO-Calc (.sxc) in SQL-Tabell

am 06.01.2007 19:45:08 von Hans-Martin Boehme

Hallo liebe Datenbankler,

von der AS400/I5 bin ich es gewohnt, Excel-Tabellen in die AS400 eigene
DB2 (IBM SQL-Datenbank) zu schieben. Es muss dort eine existierende
Tabelle vorhanden sein, dann werden alle Spalten Feld für Feld dort
eingetragen. (Ebenso kann ich aus einer DB2-Tabelle eine Excel-Tabelle
kreieren.)

Nun möchte ich bestehende OO-Calc-Dokumente in eine MySQl-DB schieben. Am
liebsten automatisiert und ohne die Tabellen vorher in MySQl anlegen zu
müssen. Kennt da jemand entsprechende Lösungen? Google hat mich hierzu
mehr verwirrt als mir geholfen. (Mit welchen Stichworten such ich hier am
besten?)

Natürlich könnte ich die OO-Dokumente auch in csv oder andere
Textformate konvertieren und dann diese als Text zu MySQL schieben.
Eventuell ist ja da ein Ansatz zu suchen...

Dankend für Anregungen

Hans-Martin

Re: OO-Calc (.sxc) in SQL-Tabell

am 06.01.2007 21:18:40 von Axel Schwenke

Hans-Martin Boehme wrote:
>
> von der AS400/I5 bin ich es gewohnt, Excel-Tabellen in die AS400 eigene
> DB2 (IBM SQL-Datenbank) zu schieben. Es muss dort eine existierende
> Tabelle vorhanden sein, dann werden alle Spalten Feld für Feld dort
> eingetragen. (Ebenso kann ich aus einer DB2-Tabelle eine Excel-Tabelle
> kreieren.)
>
> Nun möchte ich bestehende OO-Calc-Dokumente in eine MySQl-DB schieben. Am
> liebsten automatisiert und ohne die Tabellen vorher in MySQl anlegen zu
> müssen.

Irgendwie kann ich mir gerade ganz schwer vorstellen, *was* und vor
allem *warum* du tun willst.

Ein Spreadsheet und eine SQL-Tabelle haben praktisch nichts gemeinsam.
Außer vielleicht, daß sie - zumindest im Deutschen - umgangssprachlich
jeweils "Tabelle" genannt werden.

Ersteres ist ein zweidimensionales Gitter praktisch beliebiger Größe,
enthaltend Zellen, die wiederum beliebige Daten (Zahlen, Text, Uhrzeit
etc.) aber auch Formeln - also Ausdrücke mit Referenzen auf benachbarte
Zellen - enthalten können. Zusätzlich tragen die Zellen meist noch
Formatierungsinformationen.

Eine SQL-Tabelle ist eine Menge von Tupeln (auch Zeilen oder Records
genannt) mit identischer und genau spezifizierter interner Struktur.

Eine 1:1 Abbildung von Zeilen (meinetwegen auch Spalten) eines
Spreadsheets auf Records in einer SQL-Tabelle dürfte nur für einige
spezielle Spreadsheets überhaupt machbar sein (wobei ich die Format-
informationen aus dem Spreadsheet mal unter den Tisch fallen lasse).

Im einfachsten Fall könnte man alle Zellen des Spreadsheets irgendwie
in eine Textform wandeln und in einer SQL-Tabelle mit geeignet vielen
und großen VARCHAR() Spalten speichern. Nur wozu?

Man könnte natürlich auch ein Spreadsheet als Ganzes als BLOB in einer
SQL-Tabelle speichern. Ob das sinnvoll ist, darüber kann man streiten.

> Kennt da jemand entsprechende Lösungen? Google hat mich hierzu
> mehr verwirrt als mir geholfen.

Tja, mich hast du auch verwirrt.


XL

Re: OO-Calc (.sxc) in SQL-Tabell

am 06.01.2007 22:11:25 von Hans-Martin Boehme

Am Sat, 06 Jan 2007 21:18:40 +0100 schrieb Axel Schwenke:

> Hans-Martin Boehme wrote:
>>...
>> Nun möchte ich bestehende OO-Calc-Dokumente in eine MySQl-DB schieben. Am
>> liebsten automatisiert und ohne die Tabellen vorher in MySQl anlegen zu
>> müssen.
>
> Irgendwie kann ich mir gerade ganz schwer vorstellen, *was* und vor
> allem *warum* du tun willst.
>
> Ein Spreadsheet und eine SQL-Tabelle haben praktisch nichts gemeinsam.
> Außer vielleicht, daß sie - zumindest im Deutschen - umgangssprachlich
> jeweils "Tabelle" genannt werden.
>
>...(weiteres über Tabellen)

Ok, ich hätte dazu schreiben sollen, das der Aufbau der Tabellen (der von
OO-Calc) immer identisch ist. Also z.B. Name1, Name2, ..., Datum1, etc.
darunter die Daten pro Spalte. Sind also einer SQL-Tabelle sehr ähnlich.
Aber in der Tat sin einige OO-'Tabellen' leicht unterschiedlich. Dieses
Problem ist mir bekannt und muss durch manuelle Anpassung vor dem
konvertiern gelöst werden. Ist aber ne andere Baustelle.

> Im einfachsten Fall könnte man alle Zellen des Spreadsheets irgendwie
> in eine Textform wandeln und in einer SQL-Tabelle mit geeignet vielen
> und großen VARCHAR() Spalten speichern. Nur wozu?

Übernahme von vielen, gut gepflegten Daten. Endlich mal ein eine
Datenbank.

Aber wundere Dich nicht, wie oft in der Praxis 'auf Arbeit' diverse
'Partner' die Daten als Excel-Tabelle haben möchten, so z.B. Banken
zwecks BLZ-Kontonummern abgleich, Versicherungen, oder weitere. Solange
das dann nicht über deren Rechenzentrum läuft, sind es meist
Excel-Tabellen, mit starrem Aufbau, die verlangt/gewünscht werden.

> ...

>> Kennt da jemand entsprechende Lösungen? Google hat mich hierzu
>> mehr verwirrt als mir geholfen.
>
> Tja, mich hast du auch verwirrt.

:) glaub ich gerne. Siehe oben. Ist nun hoffentlich etwas klarer. Bin zwar
Gewiss kein SQL-Gott, aber der Unterschied war mir schon klar.

Nachdem ich dich 'entwirrt' hab, hast Du denn eine Idee für mich? Das
ganze sollte übrigens unter Linux laufen.


> XL
Hans-Martin

Re: OO-Calc (.sxc) in SQL-Tabell

am 07.01.2007 00:28:13 von Axel Schwenke

Hans-Martin Boehme wrote:
> Am Sat, 06 Jan 2007 21:18:40 +0100 schrieb Axel Schwenke:
>> Hans-Martin Boehme wrote:
>>>...
>>> Nun möchte ich bestehende OO-Calc-Dokumente in eine MySQl-DB schieben. Am
>>> liebsten automatisiert und ohne die Tabellen vorher in MySQl anlegen zu
>>> müssen.
>>
>> Irgendwie kann ich mir gerade ganz schwer vorstellen, *was* und vor
>> allem *warum* du tun willst.
....

> Ok, ich hätte dazu schreiben sollen, das der Aufbau der Tabellen (der von
> OO-Calc) immer identisch ist. Also z.B. Name1, Name2, ..., Datum1, etc.
> darunter die Daten pro Spalte. Sind also einer SQL-Tabelle sehr ähnlich.

Sieht so aus, als wäre Excel (bzw. OOo Calc) hier zweckentfremdet
benutzt worden. Das ändert natürlich einiges.

>> Im einfachsten Fall könnte man alle Zellen des Spreadsheets irgendwie
>> in eine Textform wandeln und in einer SQL-Tabelle mit geeignet vielen
>> und großen VARCHAR() Spalten speichern. Nur wozu?
>
> Übernahme von vielen, gut gepflegten Daten. Endlich mal ein eine
> Datenbank.

Jaja, wozu braucht Otto Normalbürger eine Datenbank. Ich erinnere mich
wehmütig an meinen ersten Kontakt mit Access (zur Entschuldigung: ich
war jung und kannte nix anderes) und wie ich damals versucht habe,
meine Bücher in eine Datenbank zu packen. Ist nie was geworden.

Mittlerweile läuft hier zwar ein MySQL hinter einer PHP-Applikation zur
Verwaltung der diversen VCD/DVD/AVI/whatever Movies. Aber das ist mehr
zum Spaß und als Fingerübung in PHP entstanden. Vermissen würde ich das
nicht wirklich. Meine CVS-Repositories schon.

Aber hast du schon mal darüber nachgedacht, ob du mit einer Datenbank
wirklich was gewinnst? Wie pflegst du die Daten weiter?

> wundere Dich nicht, wie oft in der Praxis 'auf Arbeit' diverse
> 'Partner' die Daten als Excel-Tabelle haben möchten

In dieser Richtung geht das auch eher. Was weiß ein Bürohengst schon
von Datenbanken. Und schließlich kann MySQL ja CSV generieren und Excel
kann CSV importieren. Kein großes Ding also.

Aber es hat schon ein bisschen was von "Wenn dein einziges Werkzeug ein
Hammer ist, sieht jedes Problem aus wie ein Nagel."

>>> Kennt da jemand entsprechende Lösungen? Google hat mich hierzu
>>> mehr verwirrt als mir geholfen.
>>
>> Tja, mich hast du auch verwirrt.
>
> Nachdem ich dich 'entwirrt' hab, hast Du denn eine Idee für mich?

Was fertiges wird es da wohl eher nicht geben. Allerdings hat OOo 2.0
mittlerweile eine Datenbank-Frontend-Anwendung a'la Access.
Damit könnte man die Daten pflegen. Den Import könnte man notfalls
per Copy & Paste aus Calc erledigen. Wenn es mehr Daten sind, müßte
man was programmieren. OOo hat offene Schnittstellen und erlaubt
Skripting in Java, Python und Perl.

Als alter Perl-Hacker habe ich Google mal mit "+openoffice +perl"
gefüttert und es hat u.a. http://tomacorp.com/perl/oo/index.html und
http://search.cpan.org/dist/OpenOffice-OODoc/OODoc.pod ausgeworfen.

Vielleicht hilft das ja weiter.


XL

Re: OO-Calc (.sxc) in SQL-Tabell

am 07.01.2007 08:59:12 von Hans-Martin Boehme

Am Sun, 07 Jan 2007 00:28:13 +0100 schrieb Axel Schwenke:

> Hans-Martin Boehme wrote:
>> Am Sat, 06 Jan 2007 21:18:40 +0100 schrieb Axel Schwenke:
>>> Hans-Martin Boehme wrote:
>>>>...
>>>> Nun möchte ich bestehende OO-Calc-Dokumente in eine MySQl-DB schieben. Am
>>>> liebsten automatisiert und ohne die Tabellen vorher in MySQl anlegen zu
>>>> müssen.
>>>
>>> Irgendwie kann ich mir gerade ganz schwer vorstellen, *was* und vor
>>> allem *warum* du tun willst.
> ...
>
>> Ok, ich hätte dazu schreiben sollen, das der Aufbau der Tabellen (der von
>> OO-Calc) immer identisch ist. Also z.B. Name1, Name2, ..., Datum1, etc.
>> darunter die Daten pro Spalte. Sind also einer SQL-Tabelle sehr ähnlich.
>
> Sieht so aus, als wäre Excel (bzw. OOo Calc) hier zweckentfremdet
> benutzt worden. Das ändert natürlich einiges.
>
>>> Im einfachsten Fall könnte man alle Zellen des Spreadsheets irgendwie
>>> in eine Textform wandeln und in einer SQL-Tabelle mit geeignet vielen
>>> und großen VARCHAR() Spalten speichern. Nur wozu?
>>
>> Übernahme von vielen, gut gepflegten Daten. Endlich mal ein eine
>> Datenbank.
>
> Jaja, wozu braucht Otto Normalbürger eine Datenbank. Ich erinnere mich
> wehmütig an meinen ersten Kontakt mit Access (zur Entschuldigung: ich
> war jung und kannte nix anderes) und wie ich damals versucht habe,
> meine Bücher in eine Datenbank zu packen. Ist nie was geworden.
>
> Mittlerweile läuft hier zwar ein MySQL hinter einer PHP-Applikation zur
> Verwaltung der diversen VCD/DVD/AVI/whatever Movies. Aber das ist mehr
> zum Spaß und als Fingerübung in PHP entstanden. Vermissen würde ich das
> nicht wirklich. Meine CVS-Repositories schon.
>
> Aber hast du schon mal darüber nachgedacht, ob du mit einer Datenbank
> wirklich was gewinnst? Wie pflegst du die Daten weiter?

Es ist eine Anwendung in Fertigstellung. Allerdings dieser Teil für
diese Daten noch nicht. Dennoch fallen diese Daten an und sollen dann
halt später in die dann fertige Anwendung übernommen werden.

Die Übernahme der Daten in eine DB ist eh ein guter Weg, den Umfang
der Daten, also hier die Anzahl und Typen der Felder, kennen zu
lernen. Da ja innerhalb der EDV die Ausnahmen die Regel bestimmen, ist es
immer gut zu wissen, wie die Ausnahmen aussehen.

Merke: Eine Datenbank mit gutem Konzept ist die halbe Anwendung.

>
>> wundere Dich nicht, wie oft in der Praxis 'auf Arbeit' diverse
>> 'Partner' die Daten als Excel-Tabelle haben möchten
>
> In dieser Richtung geht das auch eher. Was weiß ein Bürohengst schon
> von Datenbanken. Und schließlich kann MySQL ja CSV generieren und Excel
> kann CSV importieren. Kein großes Ding also.
>
> Aber es hat schon ein bisschen was von "Wenn dein einziges Werkzeug ein
> Hammer ist, sieht jedes Problem aus wie ein Nagel."

Netter Spruch :)

>
>>>> Kennt da jemand entsprechende Lösungen? Google hat mich hierzu
>>>> mehr verwirrt als mir geholfen.
>>>
>>> Tja, mich hast du auch verwirrt.
>>
>> Nachdem ich dich 'entwirrt' hab, hast Du denn eine Idee für mich?
>
> Was fertiges wird es da wohl eher nicht geben. Allerdings hat OOo 2.0
> mittlerweile eine Datenbank-Frontend-Anwendung a'la Access.
> Damit könnte man die Daten pflegen. Den Import könnte man notfalls
> per Copy & Paste aus Calc erledigen. Wenn es mehr Daten sind, müßte
> man was programmieren. OOo hat offene Schnittstellen und erlaubt
> Skripting in Java, Python und Perl.
>
> Als alter Perl-Hacker habe ich Google mal mit "+openoffice +perl"
> gefüttert und es hat u.a. http://tomacorp.com/perl/oo/index.html und
> http://search.cpan.org/dist/OpenOffice-OODoc/OODoc.pod ausgeworfen.
>
> Vielleicht hilft das ja weiter.

Wird mein heutiges Tagewerk. Habe zwar keinerlei Erfahrung mit Perl, aber
das werde ich dann wohl mit C angehen müssen - Dank Dir!

>
>
> XL

Hans-Martin

Re: OO-Calc (.sxc) in SQL-Tabell

am 09.01.2007 09:19:30 von unknown

Post removed (X-No-Archive: yes)