PDA

View Full Version : Datenabbildungsfehler mit embedded SQL



Joshua
09-04-02, 08:10
Hallo Leute

Wir versuchen mittels SQL (und RPG/IV) aus einer Datei mit Datumsfeldern zu lesen. Leider gibt es in der Datei Sätze, in denen das Datumsfeld nicht gefüllt wurde.
Beim FETCH fällt mir die SQL-Anweisung mit dem Hinweis "Datenabbildungsfehler in Teildatei-Datumswert ist kleiner als der kleinste zulässige Wert" auf die Nase. Den Inhalt des Datums-Feldes wollen wir nicht ändern.

Was müssen wir tun, damit wir den Satz trotzdem mit SQL verarbeiten können.

Vielen Dank für eure Tipps.

rmittag
09-04-02, 12:27
wenn ein gültiges *ISO Datum (0001-01-01 z.b.) der Grund ist, dann beim Kompilieren DATFMT(*ISO) angeben.

Gruß Rolf

Joshua
10-04-02, 07:44
Die Datumsfelder der Datei haben das Format *ISO. In der H-Bestimmung der Source steht DATFMT(*ISO). Trotzdem bringt der SQL-FETCH einen Datenabbildungsfehler.

Sven Schneider
10-04-02, 12:06
Versuchs mal mit :

SELECT IFNULL(Datefield,''0001-01-01'')
FROM File

Sven

Fuerchau
11-04-02, 08:59
Prüfen Sie mal mittels RUNQRY den Inhalt der Datei. Vielleicht enthält das Datumfeld tatsächlich einen ungültigen Wert (oder NULL).
Verwenden Sie zusätzlich eine Indicator-Variable (Typ BIN(2)): FETCH INTO ..., http://www.as400-forum.de/ubb/biggrin.gifATUM :IND, ...
Ggf. ist der SQL-Fehler nur eine Warnung und die restlichen Felder werden trotzdem korrekt gefüllt (überprüfbar z.b. mit dem Debugger).

BSchroeder
11-04-02, 09:42
Noch eine Ergänzung zu den Indikatorvariablen: Um festzustellen, ob der Inhalt der Variablen NULL ist, kann der Indikator auf < 0 abgefragt werden. In der H-Bestimmung sollte aber das Schlüsselwort ALWNULL(*USRCTL) eingetragen sein. So besteht die Möglichkeit die Hostvariablen mit Defaultwerten zu belegen, wenn der Inhalt NULL ist.