Variable Dateien in DB einlesen

Hey,
ich greife in meinem Programm mit Java auf eine Datenbank zu. Nun habe ich das Problem, dass ich Textdateien in die Datenbank bringen muss. Ich habe schon den COPY-Befehl getestet, der funktioniert auch soweit, nur ist es ja da so, dass man schon eine Tabelle haben muss, die das Format der Textdatei hat (Spaltenanzahl). Bei mir sollen aber verschiedenste Dateien eingelesen werden können. Es können 2, 20 oder 200 Spalten sein.
Format ist folgendes:

Spalte1; Spalte2; …
1.0;3.0
3.8; 2.3
.
.
.

Die entgültige Tabelle sieht dann so aus:

id; fk_spalte; wert

Meine einzige Idee dazu wäre, zuerst im java die Spaltenüberschriften auszulesen und dann mittels stored procedure (nutze ich sowieso) eine temporäre Datei mit genau diesen Überschriften zu erstellen und danach zu übertragen. An sich ist das ja durchaus möglich, aber doch sehr umständlich. Vor allem das dynamische “create temp table”-statement… Da ich nun nach langer google-Suche aber nichts anderes finde, befürchte ich, es genau so machen zu müssen :wink:
Gibts da vielleicht noch irgendeine andere Möglichkeit?
lg Nadine

Keine Idee? Oder geht nur diese Möglichkeit? Die Info würde mir auch reichen, denn müsst ichs halt so machen.
Wäre echt super, wenn jemand dazu was sagen könnt :slight_smile:
lg Nadine

Ich denke mal, es geht nicht einmal so. Woher willst Du wissen, welche Datentypen in den Spalten stehen? Woher kommen Informationen über Foreign-Keys? Woher kommen Hints, welche Indexe anzulegen sind?

Andreas

Hey,
ich hab mich etwas falsch ausgedrückt…Ich weiß, welche Datentypen in den Spalten stehen. Es sind alles floats :slight_smile:
Die Spaltenüberschriften bringe ich in eine weitere Tabelle, dort werden IDs erstellt und auf die kann ich auch zugreifen (ist etwas wirr, um es jetzt zu erklären, da auch nicht notwendig).
Meine eigentliche Frage ist nur, gibt es eine Möglichkeit, so etwas wie den COPY-Befehl auszuführen, mit dem Unterschied, dass in Postgres eine neue Tabelle (temp oder nicht) erstellt wird. Vermutlich nicht oder?
Sorry wegen dem Wirrwarr…
lg Nadine

Ist mir nix bekannt, aber ich weiß auch nicht alles.

Andreas