データベースに、新しい項目を追加したい。
AS/400でシステムを育てていると、そういう場面が出てくる。僕も、システムの拡張に合わせて、何度もフィールドを追加してきた。
そのときにしていたのは、変更前のファイルを保存し、項目を増やした新しいファイルを作り、元のデータをCPYFというコピー用のコマンドで移す作業だった。
追加したい項目は一つでも、作業は一つでは終わらない。
自分でも、結構めんどくさくて、リスクのある方法だと感じていた。
そんな僕が、2024年10月1日の旧ブログで驚いていたのが、CHGPFだった。
Change Physical File。物理ファイルを変更するコマンドである。
DDSという、レコードの項目や形式を定義する記述を使って、既存の物理ファイルの形式を変更できる。新しい形式に合わせて、データも変換される仕組みだ。
当時の記事には、こう書いていた。
「実は、私は最近知りましたー(笑)」
AS/400を長く使っていた本人が、これを言っているのである(笑)。

知っていたら、もっと使っていたのに。
旧記事には、そんな悔しさもしっかり残っていた。
使い慣れた道具でも、自分の知っている使い方が全部ではない。毎回の作業をこなせていると、その手順のまま長く付き合ってしまうこともある。
今回、昔の記事を読み返して、当時の自分の驚きがまた伝わってきた。
新しい技術を覚えるのも楽しい。使い続けてきたAS/400の中に、知らなかった機能を見つけるのも楽しい。
それにしても、あの何度ものファイル作り直し。
CHGPFくん、もうちょっと早く名乗り出てほしかった(笑)。
今回読み返すにあたっての技術補足
IBM i 7.5のCHGPF資料では、DDSに基づくフィールドの追加・削除・属性変更と、既存データの変換が説明されている。
ただし、データの対応付けはフィールド名が基準になる。名前を変更すると、そのフィールドの既存データを失うため、事前の保存が重要だ。実行には対象ファイルを他から使用していない状態も必要になる。
便利さと、変更前の準備はセットで考えたい。ここは、昔の思い出に、今回あらためて添えておく。
参考:IBM i 7.5 — Change Physical File (CHGPF)(2026年11月4日確認)