我试图找到一种有效的方法来使用 JCL 在大型机上使用 DB2 迁移表。当我们更新我们的应用程序以使架构发生变化时,我们需要迁移数据库以匹配。
我们过去所做的基本上是创建一个新表,从旧表中选择,删除原始表并将新表重命名为原始名称。
不用说,当表很大(其中一些很大)时,这不是一个非常高性能的解决方案。
对于 DB2 的最新版本,我知道您可以做一些简单的事情,比如改变列类型,但是我们有迁移作业,需要对数据做更复杂的事情。
例如,考虑我们想要将两列合并为一列 ( firstname + lastname -> fullname
) 的情况。别介意这样做不一定是个好主意,只是想当然地认为这是我们需要做的事情。可能对数据进行任意复杂的转换,基本上可以对select
语句进行任何操作。
我的问题是这个。DB2unload
实用程序可用于将表中的所有数据提取到几个数据集(load
用于重新加载数据的 JCL 和数据本身)。有没有一种简单的方法(或任何方法)来按摩这个输出,unload
以便在重新加载数据时进行这些任意更改?
我假设我可以load
以某种方式修改 JCL 成员和数据成员来实现这一点,但我不确定这有多容易。
或者,更好的是,这个unload/load
过程本身可以做到这一点而不必直接按摩成员吗?
有没有人有这方面的经验,或者有关于描述如何做到这一点的红皮书或红皮书(或任何其他来源)的指针?
除了之外,还有其他(更好,显然)的方法unload/load
吗?