Beim

insert into file2
select * from file1
where ...

stirbt SQL, wenn die Definition der Spaltennamen und Haupttypen (Zeichen/Numerisch) nicht identisch sind, also Spalten fehlen oder eingefügt wurden.
In einer Entwicklungsumgebung kommt das nun schon mal vor.
Der CPYF ist für sowas gedacht, da per *MAP/*DROP insbesonders fehlende Felder ignoriert und Typanpassungen soweit möglich vorgenommen werden können.