PDA

View Full Version : NULL in CSV Datei



alex
16-06-03, 08:03
Hallo *all,

kopiere per CPYTOIMPF eine AS400 Datei in eine CSV Datei. Die Felder, die den Inhalt BLANKS auf der AS400 haben, werden auch als BLANKS kopiert. Nun würde ich aber gerne bei diesen Feldern den NULL Inhalt, also keine BLANKS, generieren. Die Feldtrennzeichen sollen direkt hintereinander stehen. Gibt es da eine Möglichkeit ??

Rukober
16-06-03, 10:53
hallo alex,
wie wärs mit einem kleinen bereitstellungsprogramm, daß die relevanten *Blanks-Felder zuerst mit NULL belegt (SQL oder RPG). Das Pgm. erstellt eine temp. Arbeitsdatei mit NULL-Feldern, diese Datei wird anschließend beim CPYTOIMPF verwendet.
Gruss
Frank

alex
16-06-03, 11:32
Hallo Rukober,

wie kann ich denn die Felder per RPG mit dem NULL Wert versehen ???

froehlich
16-06-03, 13:28
Hi alex,

im RPG 3
move '000000' feld2
oder
movel'000000' feld2
writedateifm bzw updatdateifm

Für alle Fälle umwandeln mit dezimalfehler *yes

Gruss Thomas

B.Hauser
16-06-03, 13:36
Hallo Alex,

du benötigst erstens eine Datei, in der die Felder im DDS mit ALWNULL definiert sind.
(Alternativ kann die Datei auch mit SQL erstellt werden mit Nullwerte zulässig)

Beispiel DDS:
A____________NFKND__________9A_________ALWNULL


Im RPG benötigtst Du in den H-Bestimmungen das Schlüssel-Wort ALWNULL(*USRCTL).
Bei dem Feld, in das Nullwerte geschrieben werden soll, setzt du einfach die Built-in-Function %NULLIND(Feld) auf *OFF:

Beispiel RPG:
H ALWNULL(*USRCTL)
/Free
if NFKND = *Blanks;
%Nullind(NFKND) = *ON;
endif;
/End-Free

Ich würde allerdings embedded SQL vorziehen:
(Auch die Ausgabe-Felder bei der OutFile müssen Null-Werte zulassen)
Beispiel:
c/Exec SQL
C+ INSERT INTO OutFile
C+ SELECT nullif(:NLFELD1, ' '),
C+ nullif(:NLFELD2, 0)
C+ FROM InFile
C/End-Exec

Birgitta

alex
16-06-03, 13:49
Vielen Dank für die Tipps. Werde sie gleich mal austesten.