PDA

View Full Version : Problem beim Kopieren von Datenbanktabellen



schojo
13-05-05, 10:30
Hallo,

ich möchte den Inhalt einer AS400 Datenbankdatei in eine andere kopieren, die hinsichtlich der Datenfelder völlig identisch zur ersten ist.
Beim Kopiervorgang mit dem Befehl
CPYF FMTOPT(*NOCHK) ERRLVL(*NOMAX) bleibt der jeweilige Job jedoch hängen, so dass nichts mehr geht. An was könnte das liegen, bzw. wie schafft man Abhilfe?

kuempi von stein
13-05-05, 10:40
Hallo,

ich möchte den Inhalt einer AS400 Datenbankdatei in eine andere kopieren, die hinsichtlich der Datenfelder völlig identisch zur ersten ist.
Beim Kopiervorgang mit dem Befehl
CPYF FMTOPT(*NOCHK) ERRLVL(*NOMAX) bleibt der jeweilige Job jedoch hängen, so dass nichts mehr geht. An was könnte das liegen, bzw. wie schafft man Abhilfe?
hallo,

da würde ich mir mal das jobprotokoll ansehen.
falls der cpyf interaktiv läuft fehlermeldung ansehen und f10 um ins joblog zu kommen.

have fun

k.

sim
13-05-05, 12:28
löst zwar nicht das problem aber
als schnelle alternative mal mit SQL probieren.

evtl klappts ja damit

Fuerchau
13-05-05, 13:09
Wenn der Job hängen bleibt, dann schau mal in den Programmstack.
Vielleicht hängt ja ein Trigger auf der Zieldatei ?
Ich würde es auch mal erst mit ERRLVL(0) versuchen um die Fehler herauszubekommen. Über Systemanfrage 3 auch mal geöffnete Dateien prüfen ob sich wirklich nichts tut oder es einfach so lange dauert.

mk
13-05-05, 13:28
Hallo ,

könnte es vielleicht sein das die Datei einen Unique Key hat
und sehr viele Sätze hat.
Dabei muss das System jeden Satz prüfen ob der schon vorhanden ist und dann dauert der CPYF sehr lange
Gruss Michael

Fuerchau
13-05-05, 13:48
Eine andere Variante ist übrigens wenn die Zieldatei mit FORCE(1) zum Schreiben jedes einzelnen Satzes gezwungen wird. Da kann das Kopieren schon mal 100 Mal langsamer sein als mit FORCE(*NONE).
Und was die doppelten Sätze so angeht, erzeugt jeder doppelte Satz zusätzlich mehrere Joblogeinträge.
Besser wäre da schon SQL mittels

INSERT into DateiA
SELECT * from DateiB where DateiBKey not in (select DateiAKey from DateiA)

ausschließlich auf nicht vorhandene Sätze einzuschränken.

schojo
17-05-05, 10:24
SQL würde ich ja gerne verwenden, nur stammen die zu kopierenden Dateien noch aus der /36er Umgebung und sind nicht SQL-konform.