データベースに、新しい項目を追加したい。

AS/400でシステムを育てていると、そういう場面が出てくる。僕も、システムの拡張に合わせて、何度もフィールドを追加してきた。

そのときにしていたのは、変更前のファイルを保存し、項目を増やした新しいファイルを作り、元のデータをCPYFというコピー用のコマンドで移す作業だった。

追加したい項目は一つでも、作業は一つでは終わらない。

自分でも、結構めんどくさくて、リスクのある方法だと感じていた。

そんな僕が、2024年10月1日の旧ブログで驚いていたのが、CHGPFだった。

Change Physical File。物理ファイルを変更するコマンドである。

DDSという、レコードの項目や形式を定義する記述を使って、既存の物理ファイルの形式を変更できる。新しい形式に合わせて、データも変換される仕組みだ。

当時の記事には、こう書いていた。

「実は、私は最近知りましたー(笑)」

AS/400を長く使っていた本人が、これを言っているのである(笑)。

緑のシャツの白髪交じりの親父が、CHGPFと表示されたパソコンの横で頭をかき、うれしそうに照れ笑いしている。
挿絵:AI生成。筆者役のキャラクターによるイメージで、当時の実景・実際の画面ではありません。

知っていたら、もっと使っていたのに。

旧記事には、そんな悔しさもしっかり残っていた。

使い慣れた道具でも、自分の知っている使い方が全部ではない。毎回の作業をこなせていると、その手順のまま長く付き合ってしまうこともある。

今回、昔の記事を読み返して、当時の自分の驚きがまた伝わってきた。

新しい技術を覚えるのも楽しい。使い続けてきたAS/400の中に、知らなかった機能を見つけるのも楽しい。

それにしても、あの何度ものファイル作り直し。

CHGPFくん、もうちょっと早く名乗り出てほしかった(笑)。

今回読み返すにあたっての技術補足

IBM i 7.5のCHGPF資料では、DDSに基づくフィールドの追加・削除・属性変更と、既存データの変換が説明されている。

ただし、データの対応付けはフィールド名が基準になる。名前を変更すると、そのフィールドの既存データを失うため、事前の保存が重要だ。実行には対象ファイルを他から使用していない状態も必要になる。

便利さと、変更前の準備はセットで考えたい。ここは、昔の思い出に、今回あらためて添えておく。

参考:IBM i 7.5 — Change Physical File (CHGPF)(2026年11月4日確認)

WRITTEN BY 太城 義雄(たき よしお)

IBM i / AS/400を愛するSE