PDA

View Full Version : Immer dieser CPYFRMIMPF



Seiten : [1] 2

Reinhard Claessen
05-04-04, 10:45
Hallo und Hilfe!
Für den cpyfrmimpf habe ich ein File auf der AS/400 und in der QDDSSRC ein Felddefinitionsmember erstellt. Beide Dateien sind baugleich und doch bricht der copy-Befehl mit der ERRMSG CPF2845 und dem Text "Kopiervorgang aufgrund von Ursachencode 10 nicht durchgeführt" ab. Alle angegebenen Möglichkeiten habe ich ausprobiert, mit der Folge, dass mal mit Ursachecode 11 oder 2 der Vorgang abbricht.

Wer kann mir helfen?
Reinhard :rolleyes:

Fuerchau
05-04-04, 11:02
Kommt drauf an was du kopieren willst. Bisher bin ich immer ohne Felddefinitionsdatei ausgekommen. Versuchs doch mal einfach nur mit CPYFRMIMPF !
Ich nehme mal an du willst von einer PF in eine IFS-Datei kopieren.

Reinhard Claessen
05-04-04, 11:57
Danke erst einmal, aber...
diesen Versuch habe ich zuerst gestartet, dann erhalte ich die Antwort
"Datei QACP012720 in Bibliothek QRECOVERY wurde erstellt.
0 Sätze kopiert aus Teildatei QACP012720."
und mein Befehl sieht so aus:
CPYFRMIMPF FROMSTMF('root/home/claessen/speberl.txt') TOFILE(DEPAKP) RCDDLM(*CRLF) STRDLM(*NONE) RMVBLANK(*NONE) FLDDLM(*TAB) RPLNULLVAL(*FLDDFT)

Mein Ziel ist es, eine Textdatei mit festgelegten Spalten aus dem Verzeichnis (siehe Command) in die Datenbankdatei übernehmen. Mit einer CSV-Datei hatte ich nicht diese Schwierigkeiten.

Reinhard

Fuerchau
05-04-04, 13:44
Wie wärs da mit CPYTOIMPF ?

Bist du sicher dass *TAB der Feldbegrenzer ist ? Ist das nicht eher *NONE ?

Alternativ kann auch in eine kleine Zwischendatei (mittels CRTPF) und anschliessendem CPYF ... *NOCHK kopiert werden.

Reinhard Claessen
05-04-04, 14:16
Beim Feldbegrenzer kann *NONE nicht angegeben werden nur das Begrenzungszeichen (z.B.: Komma) in Hochkomma oder *TAB. Es funktioniert aber mit beiden nicht.

Eine Zwischendatei geht auch nicht, denn ich muss die Daten, die ich per e-Mail empfange und dann im ´root/home-Verzeichnis` finde, erst einmal auf die AS/400 bekommen.

Wahrscheinlich ist der cpyfrmimpf nur für CSV-Dateien gültig?!!

BenderD
05-04-04, 14:26
Hallo Reinhard,

wie wärs mit:
CPYFRMSTMF oder CPYFRMIMPF in eine Zwischendatei (ein langes Feld) und dann per SQL und SUBST in Felder zerlegt.

mfg

Dieter Bender


Beim Feldbegrenzer kann *NONE nicht angegeben werden nur das Begrenzungszeichen (z.B.: Komma) in Hochkomma oder *TAB. Es funktioniert aber mit beiden nicht.

Eine Zwischendatei geht auch nicht, denn ich muss die Daten, die ich per e-Mail empfange und dann im ´root/home-Verzeichnis` finde, erst einmal auf die AS/400 bekommen.

Wahrscheinlich ist der cpyfrmimpf nur für CSV-Dateien gültig?!!

Fuerchau
05-04-04, 15:44
"CPYFRMIMPF ... RCDDLM(*CRLF) DTAFMT(*FIXED)" verwendet KEINE Feldbegrenzer !

Mittels CPYFRMSTMF kannst du die IFS-Datei direkt in eine PF kopieren und anschliessend per CPYF .... FMTOPT(*NOCHK) diese in deine Formatierte PF/SQL-Table kopieren.

Problematisch ist hier nur ggf. die korrekte CCSID-Umsetzung (Umlaute, Sonderzeichen).

Reinhard Claessen
06-04-04, 07:11
"CPYFRMIMPF ... RCDDLM(*CRLF) DTAFMT(*FIXED)" verwendet KEINE Feldbegrenzer !

Mittels CPYFRMSTMF kannst du die IFS-Datei direkt in eine PF kopieren und anschliessend per CPYF .... FMTOPT(*NOCHK) diese in deine Formatierte PF/SQL-Table kopieren.

Problematisch ist hier nur ggf. die korrekte CCSID-Umsetzung (Umlaute, Sonderzeichen).

__________________________________________________ __
Danke, Danke,

mit CPYFRMSTF habe ich die Daten einwandfrei übernehmen können. Der Tip war genau richtig!!

Macht weiter so,
Reinhard

Karo
13-04-05, 13:19
Hallo,

ich habe genau das Problem mit den Sonderzeichen beim cpyfrmimpf. Kann man dies in diesem Befehl umgehen? Oder welche andere Möglichkeiten hätte ich noch?
Allerdings sollte es schon ein AS400-Befehl bleiben, da der CPY von einem CL aus gestartet wird.
Es wird übrigens lediglich die Datei, ohne Feldbegrenzer, Satz für Satz übernommen und dann per CPYF *nochck in die korrekte Datei kopiert.
Danke schonmal.

Gruß, Karo

Karo
13-04-05, 15:25
Hat sich erledigt. Die Ursprungsdatei war schon im falschen Format.