PDA

View Full Version : Kauderwelsch nach CPYTOIMPF



lossin
19-07-10, 13:02
Hallo @all,

ich habe da ein Problem.
Wenn ich eine AS/400-Datei mit einem 60-stelligen Char-Feld mit

CPYTOIMPF FROMFILE(Lib/Datei) TOSTMF('/home/Irgendwas.txt') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) STRDLM(*NONE)

kopiere, kommt so ein Datenschrott raus :

ððòõñöñòøôóõõôõÈ–††”…‰ ¢£…™@@@@@@@@@@@@@@ف“†@@@@@@@

Die Feldbeschreibung der Quelldatei :
Daten Feld- Puffer Puffer Feld Spalten
Feld Art Länge Länge Position Verwend. Überschrift
ALLES CHAR 60 60 1 Beides
Feldtext . . . . . . . . . . . . . . . : VSNR!!BETR!!AV
ID des codierten Zeichensatzes . . . . . : 65535

Weiß jemand, warum das so ist ??

Vielen Dank im Voraus !

Pikachu
19-07-10, 13:27
Bist du auf V5R4? Dann ist es vielleicht dieses Problem:

IBM - SE28511 - OSP-DB-INCORROUT CPYTOIMPF FROMCCSID NOT CONVERT 65535 to ASCII (http://www-01.ibm.com/support/docview.wss?uid=nas2d514e8d8eaa45cdf862572ac003c7e 41)

Fuerchau
19-07-10, 13:29
Wie immer:
Ist ein Feld oder die Datei mit *HEX (65535) kodiert, kann und darf nicht automatisch umgewandelt werden.

In diesem Fall solltest du die FROMCCSID explizit angeben:

Achtung:
Steht dein Job auch auf CCSID(*HEX) musst du vorher einen CHGJOB CCSID(nnn) durchführen, sonst gehts wieder daneben.

lossin
19-07-10, 14:14
Danke an Beide !

Wir haben (noch) V5R3 und den Parameter FROMCCSID habe ich nicht zur Verfügung.

Fuerchau
19-07-10, 14:16
Dann hilft nur ein Neuerstellen der PF mit gültiger CCSID bzw. eben umkopieren in eine PF mit CCSID.

Die CCSID kannst du auch mittels CHGPF und Angabe der Quelle ändern. Dann wird die Ddatei automatisch umkopiert.

lossin
19-07-10, 14:47
Die Datei wird per CRTPF mit Satzlänge und ohne Quelldatei erstellt. Die Angabe von CCSID ist für eine Datendatei dabei nicht zulässig.
Wenn ich mit CHGJOB meinen Job auf CCSID 273 ändere und dann einen CRTPF mit dem Parameter CCSID = *JOB ausführe, hat die Zieldatei trotzdem die CCSID 65535 :(

Allmählich geht mir das auf die Nerven.

Pikachu
19-07-10, 15:23
Probier mal mit ner Quellendatei:

CRTSRCPF FILE(Bibliothek/Datei) RCDLEN(72) CCSID(273)

Fuerchau
19-07-10, 18:14
Das stimmt auch.
PF's ohne SRC sind immer vom Typ Binär.
Entweder, wie Pikachu sagt, per DDS oder auch per SQL mit CREATE TABLE.

Eigentlich müsste CPYxxxIMPF eine Binär-PF doch ablehnen, zumindest kommt bei mir immer die Fehlermeldung, dass diese PF nicht unterstützt wird.

Wenn deine PF aber ohne SRC ist, dann sind die CPYxxxSTMF-Befehle die bessere Wahl. Da klappts dann auch mit den CCSID's.