PDA

View Full Version : Kopier von Dateien mit Null-Feldern in eine Datei ohne Null-Felder



Frank Pusch
26-10-07, 11:12
Hallo,

ich habe folgende Herausforderung. Eine Tabelle 1 mit n-Attributen soll in eine Tabelle 2 mit m Attributen kopiert werden. In Tabelle 1 sind Attribute vorhanden, die auch in der Tabelle 2 vorhanden sind. Die Namen der Attribute sind gleich. In Tabelle 2 sind Attribute vorhanden, die nicht in Tabelle 1 vorhanden sind. In der Tabelle 1 können Attribute NULL enthalten; gleichnamige Attribute in der Tabelle 2 nicht.
Ich habe nun versucht mit dem Befehl: CPYF FROMFILE(&L1/&N) TOFILE(&L2/&N) MBROPT(*REPLACE) FMTOPT(*MAP *drop)
die Tabellen zu kopieren. Der Befehl wird mit folgender Fehlermeldung abgebrochen:
Abbruchantwort für Nachricht CPF5026 empfangen.
Fehler beim Schreiben in Teildatei IMP_D00002 in Datei IMP_D00002.
1 Datensätze in IMP_D00002 in Bibliothek C5TADXXX kopiert.
Feld, das Nullen enthalten kann, wurde in Feld kopiert, das keine Nullen enthalten kann.

Gibt es einen Weg, die Tabelle 1 nach Tabelle 2 zu kopieren, ohne ein Programm schreiben zu müssen?

Fuerchau
26-10-07, 11:16
STRSQL ist die Lösung, erfordert allerdings Tiparbeit:

insert into Dest (f1, f2, f3, ...)
select f1, coalesce(f2, 0), coalesce(f3, ' ') ...)
from source

Das Problem, du musst NULL durch Default ersetzen, CPYF unterstützt keine Datenveränderung, die ja hier erforderlich wäre.

Frank Pusch
26-10-07, 11:24
Danke für die schnelle Antwort;
dann mach ich mich mal ans Tippen

Fuerchau
29-10-07, 11:19
Übrigens: mein Tool SQLCPY macht sowas mit links ;)