別の DB2 テーブルにロードできるように、データを UNLOAD したい IBM DB2 テーブルがあります。
1 つの小数フィールドを除いて、両方のテーブルに同じ列 (および型) があります。
ソース テーブルでは DECIMAL(6)、宛先テーブルでは DECIMAL(5) です。
ソース テーブルには、DECIMAL フィールドで最大 5 桁しか使用しない多くのエントリがあり、一部のエントリだけが 6 つすべてを使用します。
私がやろうとしているのは、ソース テーブルの 5 桁までのエントリだけをコピーし、他のすべてを削除することです。
UNLOAD ステートメントのみを使用してこれを行うことはできますか? そのため、システムに「列 'id' を DECIMAL(5) としてアンロードする (ただし、テーブル自体では DECIMAL(6) である) 」というオプションがあり、その列のエントリが 6 桁すべてを使用する場合 (>99999) はアンロードされません。その行」。
また、逆の場合はどのように対処しますか?たとえば、ソースから DECIMAL(5) をアンロードし、デスティネーションで DECIMAL(6) としてロードします。
なぜ私はこれをしているのですか?宛先テーブルは、古いバージョンのアプリケーションで使用される古いバージョンのテーブルであるためです。サポートは 6 か月で終了しますが、それまではデータセットを更新する必要があります。
UNLOAD と LOAD では、たとえばhttps://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/ugref/src/tpc/db2z_utl_unload.htmlで説明されている z/OS (?) の UNLOAD および LOAD ユーティリティについて話してい ます。