PDA

View Full Version : Fehler in DB, aber Wo?



Nienhaus
01-12-09, 06:42
Hallo ihr lieben,

ich habe ein bis jetzt noch großes Problem.

Also:

Ich habe eine Datei mit 32Mio. Datensätzen. Dort sind felder wie z.B Zeit , Objektnummer usw. dargestellt.

Nun ist es so, das ich mit einem Query auf die Datei eine Abfrage erstelle. In diesem Query wird das Objektjahr auf 2009 beschränkt, was den Fehler schonmal ein bischen eindimmt.

Und wenn ich die Spalte "Zeit" herrausnehme geht auch alles wunderbar. ABER sobald ich die Spalte "Zeit" wieder in meine Abfrage einbaue, stürzt die Abfrage ab.

Meine Frage ist nun diese.

Wie kann ich mir den Datensatz anzeigen lassen wo der Fehler in der Spalte Zeit ist. Weil jede Abfrage die ich erstelle natürlich fehl schlägt solange der Fehler dort ist und ich die Spalte Zeit in meinen Abfragen einbaue.

Gibt es da einen Trick?

Vielen Dank schonmal im Vorraus.

MfG

T.Nienhaus

BenderD
01-12-09, 07:43
... wieder eins von diesen Puzzles, bei mir haben Felder einen Typ und wenn Programme abstürzen machen die bei mir Fehlermeldungen...

lass mich raten: Zeitfelder und falsches Datumsformat im Job, oder wie wärs mit Nullvalues?

D*B


Hallo ihr lieben,

ich habe ein bis jetzt noch großes Problem.

Also:

Ich habe eine Datei mit 32Mio. Datensätzen. Dort sind felder wie z.B Zeit , Objektnummer usw. dargestellt.

Nun ist es so, das ich mit einem Query auf die Datei eine Abfrage erstelle. In diesem Query wird das Objektjahr auf 2009 beschränkt, was den Fehler schonmal ein bischen eindimmt.

Und wenn ich die Spalte "Zeit" herrausnehme geht auch alles wunderbar. ABER sobald ich die Spalte "Zeit" wieder in meine Abfrage einbaue, stürzt die Abfrage ab.

Meine Frage ist nun diese.

Wie kann ich mir den Datensatz anzeigen lassen wo der Fehler in der Spalte Zeit ist. Weil jede Abfrage die ich erstelle natürlich fehl schlägt solange der Fehler dort ist und ich die Spalte Zeit in meinen Abfragen einbaue.

Gibt es da einen Trick?

Vielen Dank schonmal im Vorraus.

MfG

T.Nienhaus

B.Hauser
01-12-09, 07:48
Ich nehme an die Zeit ist ein numerisches Feld und die Datei wurde mit DDS erstellt.

Du kannst folgendes versuchen:
Erstelle eine Tabelle mit SQL, in der der eindeutige Schlüssel (sofern einer vorhanden) der ersten Datei und eine Spalte in die die relative Satz-Nr. aus der 1. Datei übernommen wird und eine Spalte mit der numerischen Zeit.

Dann versuche mittels Insert die Sätze aus der 1. Datei zu übernehmen. Sobald der 1. fehlerhafte Satz übernommen werden soll, bricht der Insert ab, da in SQL Tabellen keine ungültigen numerischen Werte übernommen werden können.

Auf diese Art und Weise könntest Du Dich vorarbeiten.

@Dieter - SQL sind Datums- und Zeit-Formate schnurz, da bei Datums und Zeit-Werten immer der Binär-Wert verwendet wird und das Datums und Zeit-Format nur dazu verwendet wird um den Binär-Wert sichtbar zu machen.

Bei embedded SQL tritt das Problem mit falschem Format deshalb auf, weil RPG alle Datums- und Zeitangaben nach alpha konvertiert und erst wieder beim Zurückschreiben in den Binär-Wert konvertiert.

Birgitta

Fuerchau
01-12-09, 08:17
Meistens gibts im Joblog einen Datenumsetzungsfehler unter Angabe der relativen Satz-Nr. des betroffenen Satzes.

Ich muss Dieter da Recht geben, da Query per Default mit den Job-Datumsformat arbeitet und Werte ausserhalb der Range 1940 - 2039 meist mit '++++' anzeigt.
Bei Dateiausgabe läuft das dann auf einen Fehler.
Ursache ist hierfür meist der LOWVAL-Wert eines Datums 1.1.0001.
Das Selbe Phänomen habe ich auch bei STRSQL (F13 Datumsformat).

Reine Zeitformate sind da auch eher unkritisch, Timestamps sowieso, da dieses Format fest definiert ist.