我有一个 IBM DB2 表,我想从中卸载数据,以便将其加载到另一个 DB2 表中。
两个表都有相同的列(和类型),除了一个十进制字段。
在源表中为 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 实用程序