Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Einfügen über externalTabelle funktioniert nicht richtig (https://www.delphipraxis.net/179327-einfuegen-ueber-externaltabelle-funktioniert-nicht-richtig.html)

jobo 8. Sep 2014 16:40

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Zitat:

Zitat von blutigerAnfänger (Beitrag 1271654)
Zum 1ten Absatz:
Also am besten mit einem 2ten Integer Feld (in dem bereits die Autoinc enthalten ist)??

zum 2ten Absatz:
Nenn mir doch mal eine deutschsprachige Literatur zum Thema ETL (externalTabelle?), welche möglichst einfach gehalten ist. Vielleicht gibt's da noch etwas was ich bei meiner Recherche übersehen habe.

zum 3tenAbsatz (Konvertierung):
Anbei zwei Screenshots, beide zeigen die Ergebnisse der external Tabelle aus IBexpert personnel.
Der eine Screenshot zeigt das Importergebnis von CHAR, der andere das Importergebnis von VARCHAR an beide mit Länge 10.

Ich weiß nicht, warum es ein 2tes Integerfeld sein muss. Was am besten ist, weiß ich auch nicht, es kommt auf Deine Daten an. Wenn die eindeutige Merkmale enthalten, kannst Du diese Spalten für den eindeutigen Zugriff nutzen

ETL beschreibt den Vorgang ExtractLoadTransform oft verwendet in Datawarehouse Systemen:
http://de.wikipedia.org/wiki/ETL-Prozess

Sieht so aus, als ob Deine Längenangaben nicht zur CSV Datei passen. Feld-Trennzeichen wird mitgelesen oder so.

blutigerAnfänger 8. Sep 2014 16:52

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von mkinzler (Beitrag 1271655)
Und wie sieht die Datei aus?

Zitat:

Zitat von jobo (Beitrag 1271657)
Ich weiß nicht, warum es ein 2tes Integerfeld sein muss. Was am besten ist, weiß ich auch nicht, es kommt auf Deine Daten an. Wenn die eindeutige Merkmale enthalten, kannst Du diese Spalten für den eindeutigen Zugriff nutzen

ETL beschreibt den Vorgang ExtractLoadTransform oft verwendet in Datawarehouse Systemen:
http://de.wikipedia.org/wiki/ETL-Prozess

Sieht so aus, als ob Deine Längenangaben nicht zur CSV Datei passen. Feld-Trennzeichen wird mitgelesen oder so.

Meine Testtabelle mit fixer Länge(wie external Table vorschreibt): Das erste Feld Integer mit 10 Zeichen Länge, Das zweite Feld STring bzw.Char(nach Vorschrift) mit Länge 50, Das dritte Feld String bzw. Char mit 250er Länge.

Dejan Vu 8. Sep 2014 17:01

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
CSV? Ich lese immer CSV... Kann Firebird das denn? So wie ich das verstanden habe, muss die Textdatei feste Breiten haben... Oder geht das etwa? :gruebel:

jobo 8. Sep 2014 17:20

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Zitat:

Zitat von Dejan Vu (Beitrag 1271661)
CSV? Ich lese immer CSV... Kann Firebird das denn? So wie ich das verstanden habe, muss die Textdatei feste Breiten haben... Oder geht das etwa? :gruebel:

Ich glaube nur feste Breite. CSV ist scheinbar der schlampige Standardbegriff für alles was Daten lesbar in Textform enthält.

Mein Hinweis mit den micht berücksichtigten Spaltentrennzeichen war dementsprechend daneben.

Aber die Datei ist ja offenbar fixed length. Sollte also in Ordnung sein.
Eine Zeile 310 Bytes, mit Umbrauch 312.

Jumpy 9. Sep 2014 08:01

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Irgendwie sieht das so aus, das der Import eine Datei ohne Zeilenumbrüche erwartet.
Mach doch alle Zeilenumbrüche aus der Datei raus oder mach ein 4tes Feld Länge 2, dass die Zeielnumbruchzeichen aufnimmt.

blutigerAnfänger 9. Sep 2014 11:49

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Ich hab's geschafft. Zwei Fehler:

1. Fehler: Im Vorbereitungsprogramm, welches die fixe Länge erzeugt, hat sich beim Kopieren ein falscher Index eingeschlichen. Deswegen war die External Tabelle so ziemlich durcheinandergeraten. Korrigiert.
Externe Tabelle funktioniert nachwievor nur mit Char (kein Varchar, kein Integer o.A.)

2.Fehler Die FirebirdZieltabelle hatte wie beschrieben 4 Felder, (Checkbox Integer, Name Varchar, Bezeichnung Varchar, und ID Integer. Das ID Integer Feld gelöscht und der Import läuft fehlerfrei.

Danke an Alle.

mkinzler 9. Sep 2014 17:15

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Zitat:

Externe Tabelle funktioniert nachwievor nur mit Char (kein Varchar, kein Integer o.A.)
Ja, aber du kannst es ja beim Kopieren von der externen Tabelle in die Zieltabelle konvertieren (casten)

SQL-Code:
insert into <Tabelle>(...) select cast( checkbox as Integer), ... from dat_ext

Sir Rufo 9. Sep 2014 17:47

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Irgendwie klingt es ja auch logisch, dass bei einer festen Breite auch der Datentyp eine feste Breite hat ;)

blutigerAnfänger 12. Sep 2014 07:31

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Das Problem mit dem ID Feld hat sich auch erledigt.
Das nachträgliche Einfügen der ID Tabelle funktioniert zwar, aber der Trigger und der Generator lassen sich nicht zum laufen bringen(Trigger nicht einmal erzeugen).
Das Problem läßt sich durch das Einfügen eines zusätzlichen Feldes (ID) im Vorbereitungsprogramm umgehen. Fügt zwar ein "statisches" ID Feld ein, ist aber für den Zweck völlig egal.

Dejan Vu 12. Sep 2014 11:19

AW: Einfügen über externalTabelle funktioniert nicht richtig
 
Wieso willst Du in einer externen Tabelle denn überhaupt so eine ID haben?

Nochmal: Die 'EXTERNAL TABLE' Funktionalität ist dazu da, um auf externe Dateien zugreifen zu können. Du sollst die tunlichst in eine andere Tabelle überführen, wo Du dann deine Trigger, AutoInc-Spalten, Integer, Numeric, foobars und sonst was für Datentypen hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz