JCL を使用して、メインフレーム上の DB2 でテーブルを効率的に移行する方法を見つけようとしています。スキーマが変更されるようにアプリケーションを更新する場合、それに合わせてデータベースを移行する必要があります。
私たちが過去に行ってきたことは、基本的に新しいテーブルを作成し、古いテーブルから選択して、元のテーブルを削除し、新しいテーブルの名前を元の名前に変更することです。
言うまでもなく、テーブルが大きい場合 (およびテーブルの一部が非常に大きい場合)、これは非常に高性能なソリューションではありません。
DB2 の最近のバージョンでは、列タイプの変更などの単純なことを実行できることはわかっていますが、データに対してより複雑なことを行う必要がある移行ジョブがあります。
たとえば、2 つの列を 1 つに結合したい場合を考えてみましょう ( firstname + lastname -> fullname
)。そうすることが必ずしも良い考えではないことは気にしないでください。基本的に、ステートメントで実行できることは何でも、データに対して任意に複雑な変換を行うことができます。select
私の質問はこれです。DB2ユーティリティを使用して、すべてのデータをテーブルからいくつかのデータ セット (データの再ロードに使用される JCL とデータ自体)unload
にプルすることができます。データをリロードするときにこれらの任意の変更が行われるように、この出力をマッサージload
する簡単な方法 (または任意の方法) はありますか?unload
これを達成するために JCL メンバーとデータ メンバーを何らかの方法で変更できると思いload
ますが、それがどれほど簡単かはわかりません。
それとも、unload/load
メンバーを直接操作することなく、プロセス自体でこれを行うことができますか?
誰もこれを経験したことがありますか、またはこれを行う方法を説明するレッドブックまたはレッドペーパー (またはその他のソース) へのポインタを持っていますか?
以外にこれを行う別の(より良い、明らかに)方法はありunload/load
ますか?