IBM i のデータエリアの内容を一括取得できますか?
Question
IBM i (AS/400)にユーザー作成の業務アプリケーションがあります。
この度メンテナンスをすることになったのですが、データエリアを多く使用しているためひとつひとつ確認するのは非常に手間に感じています。
データエリア名と内容の一覧を一括で取得する方法はありますか。
Answer
IBM i Service(SQL)に、DATA_AREA_INFO ビューが存在しています。
これを使用することで、データエリアの一覧を取得することが可能です。
コマンド例:
SELECT DATA_AREA_NAME, DATA_AREA_VALUE
FROM QSYS2.DATA_AREA_INFO
WHERE DATA_AREA_LIBRARY = 'SAMPLELIB';

このような形で、データエリアの情報一覧を取得することが可能です。
今回はライブラリーのみを指定していますので、指定したライブラリーに存在するすべてのデータエリアの名前とその内容が一覧に表示されています。この方法でご要望に沿えるかと思います。
今回は見やすいように、IBM i Access Client Solutions(ACS)の「SQLスクリプトの実行」機能を使用しましたが、IBM i (AS/400)に5770-ST1のライセンスがあればエミュレーター上でもコマンド実行できます。
なお、DATA_AREA_INFO ビューの詳細な説明は、以下のサイトをご確認ください。
https://www.ibm.com/docs/ja/i/7.5?topic=services-data-area-info-view
また、一覧をファイル出力したい場合は以下のリンクをご参照ください。
ACSのSQL実行結果をダウンロードしたい
https://www.e-bellnet.com/category/technology/2212/2212-02.html
プログラムの構造によっては、複数のデータエリアが関係しあっている場合もあるかと思いますので、この機能が使用できると非常に便利ですね。
by . かんぴょう木綿さん