-
-
Per SQL hast du leider keine Chance!
SQL versucht die Daten zu lesen, kann dies aber nicht, da sie ja ungültig sind.
Dies kannst du nur per Programm, wobei hier die RPG-Runtime ja beim READ einen Fehler bringt sobald das Feld angesprochen wird.
Dies ereichst du bereits, wenn die Felder als E DS definiert sind.
Den READ kannst du per MONITOR abfangen, da RPG ja intern per MOVE in die DS überträgt und bei ungültigen Daten einen MCH-Fehler bekommt.
Welches Feld das dann ist, kann man nicht herausfinden, aber wenigstens hat man die Satznummer (INFDS).
Alternativ könnte auch ein CPYF ... FMTOPT(*MAP *DROP) ERRLVL(*NOMAX)funktionieren.
-
Danke für die schnelle Info.
Den CPYF hatte ich getestet, aber den ERRLVL vergessen.
Versuche ich direkt.
Harald Wallukat
Am Grafacker 2
40789 Monheim
Telefon +49 2173 32503
Mobile +49 171 4137771
harald.wallukat@web.de
-
Bin da nicht sicher, aber kannst du nicht in einer coalesce Gruppe das Feld durch 1 dividieren oder in einer case Anweisung diese division auf NULL abfragen?
update datei set numfeld1 = case when numfeld1/1 = NULL then 0 else numfeld1 end
oder
update datei set feld = coalesce(numfeld1/1, 0)
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Wenn "numfeld" ungültig ist, da nicht numerisch, stirbt der SQL und macht dann auch nichts.
-
Ich hatte buchstäblich vor Jahrzehnten 'mal Kontakt zu einem Tool namens FILESCOPE, das solche ungültigen Werte in gültige numerische Werte umändern konnte und zwar nicht nur feldweise, sondern für ganze Dateien. Hier findest Du einen link : Filescope – iSeries Data Manipulation Tool for Enhancing Programmer Productivity
Vielleicht hilft Dir das ja weiter.
-
Ich würde die Datei intern definieren und dabei die falschen *BLANKS Felder als Alpha definieren.
Anschließend xlate x'40' 0 und gut ist.
Allerdings kann es dabei passieren, das bei negativeren das - verloren geht
-
Moin,
vielleicht etwas spät aber trotzdem
DAS
zeigt wie's mir SQL geht
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Ungültige Werte in Num Feld
Hallo Gemeinde :-)
Ich hatte das vor Jahren (nach der Umstellung von S/36) mal so gelößt, dass ich die DDS der Datei eingelesen habe, damit einen RPG Quelle erstellt habe und diese mit der option
Dezimaldatenfehler ignorieren . IGNDECERR *YES
umgewandelt habe.
Dieses Programm hat alle Sätze gelesen und einen Update gmeacht.
damit waren alle nummerischen x'40' Felder nachher "sauber"
auf 0
Klaus
Similar Threads
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 25-02-13, 11:57
-
By I0N in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-11-06, 12:44
-
By rr2001 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 07-07-06, 09:56
-
By HACHIMAN in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 22-05-06, 09:48
-
By holly in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 16-05-06, 12:45
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks