0

別の 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 ユーティリティについて話してい ます。

4

1 に答える 1