AS400 / IBM i の保守では、ACS(IBM i Access Client Solutions)のSQL画面やDb2 for iを使って、ジョブ、オブジェクト、ファイル、IFS(統合ファイルシステム)、スプール、システム情報を確認する場面があります。最近のIBM iでは、コマンドだけでなくSQLで運用情報を見る方法も増えています。
ただし、SQLは便利な反面、本番データを扱う時の注意も大きいです。この記事では、IBM i SQL ServicesやACSのSQLを「本番を壊さず確認する入口」として、初心者・保守担当者向けに整理します。細かいSQL文の暗記よりも、まずSELECT中心で見る、更新系SQLを不用意に打たない、という考え方を大切にします。
IBM i SQL Servicesとは
IBM i SQL Servicesは、IBM i のシステム情報や運用情報をSQLで確認できる仕組みです。従来はコマンドや画面で見ていた情報の一部を、SQLのSELECTで取得できます。たとえば、オブジェクト、ジョブ、IFS、メッセージ、権限、システム値などを調べる時の入口になります。
AS400現場では、まずコマンドで確認する文化が強いですが、SQLで一覧化できると、調査結果を整理しやすくなります。特に影響調査、棚卸し、バックアップ対象確認、不要オブジェクト調査、ドキュメント化では役立ちます。
最初はSELECTだけで使う
初心者がACSのSQLを使う時は、承認された参照用SQLから始めます。SELECTでも大量読み取りによる負荷、機密情報の取得、呼び出す関数の作用には注意が必要です。参照専用の権限を使い、対象・件数・実行時間帯を確認してください。SELECTは情報を確認するための入口です。UPDATE、DELETE、INSERT、CREATE、DROPのような更新・変更系は、作業手順、バックアップ、レビュー、復旧方法がない状態では使わないようにします。
| SQLの種類 | 初心者の扱い | 理由 |
|---|---|---|
| SELECT | 確認用として使う | 対象データや運用情報を読む入口になる |
| UPDATE | 原則レビュー後 | 本番データを書き換えるため事故影響が大きい |
| DELETE | 原則使わない | 削除は復元が難しく、条件漏れが致命的になる |
| INSERT | 手順化してから | 重複、採番、整合性に注意が必要 |
| DROP / CREATE | 管理者判断 | オブジェクトや環境に直接影響する |
最初の例は、SQLを実行しているジョブのライブラリリストの参照です。ACSの「SQLスクリプトの実行」で、接続先と利用許可を確認してから実行します。SQL命名規則での記述例です。
SELECT ORDINAL_POSITION, SYSTEM_SCHEMA_NAME, TYPE
FROM QSYS2.LIBRARY_LIST_INFO
ORDER BY ORDINAL_POSITION;
結果には順序、ライブラリ名、SYSTEM・USER・CURRENT等の区分が返ります。対象は現在のSQL接続のジョブであり、別の5250ジョブや夜間バッチのリストではありません。想定と違う場合は接続先と対象ジョブを照合し、ここでライブラリリストを変更しないでください。ビューが見つからない場合は対象OS/PTFと利用可能なサービスを管理者に確認します。この例はIBM仕様との照合であり、読者の環境での実行検証済みという意味ではありません。IBM公式:LIBRARY_LIST_INFO
コマンドとSQLを使い分ける
AS400保守では、コマンドとSQLを対立させる必要はありません。WRKACTJOB、WRKJOB、DSPJOBLOG、DSPFFD、DSPPFM、WRKSPLFのようなコマンドで画面確認し、必要に応じてSQLで一覧化する、という使い分けが現実的です。
| 見たいこと | コマンドの入口 | SQLで見る時の考え方 |
|---|---|---|
| ジョブ状態 | WRKACTJOB / WRKJOB | 一覧化して対象ジョブを絞る |
| ファイル定義 | DSPFFD | 項目一覧や桁数を資料化する |
| ファイル内容 | DSPPFM | 条件を付けてSELECTする |
| スプール | WRKSPLF | 帳票や出力状況を一覧化する |
| オブジェクト | DSPOBJD / WRKOBJ | ライブラリ内の棚卸しに使う |
コマンド名から探したい場合は、AS400コマンド逆引き を入口にしてください。SQLとコマンドの両方を知っておくと、調査の選択肢が増えます。
データ抽出では条件とマスキングを先に決める
ACSのSQLでデータを抽出する時は、対象ライブラリ、対象ファイル、抽出条件、出力先、利用目的、機密情報の扱いを先に決めます。顧客名、住所、電話番号、金額、社員情報を含む場合は、必要最小限の項目に絞り、マスキングや保存場所を決めてから実行します。
データ抽出の全体像は、AS400データ抽出ガイド にまとめています。DSPPFM、Query、SQL、CPYTOIMPFを使う前に、まずここで確認項目をそろえると安全です。
本番でSQLを使う前のチェック
- 接続先が本番かテストかを確認する
- ライブラリ名を明示する
- SELECT文から始める
- 件数が想定内か確認する
- WHERE条件を外した状態で更新しない
- CSV出力時は保存先と削除ルールを決める
- AIや外部サービスへ渡す前に機密情報をマスキングする
本番作業の前提は、AS400本番対応チェックリスト も合わせて確認してください。
CodexやAIに調査結果を渡す時
SQLで取得した一覧やDSPFFDの項目情報をCodexに渡すと、テーブル定義の要約、影響範囲の整理、テスト観点の作成に役立つことがあります。ただし、本番データや個人情報をそのまま渡さないことが前提です。
安全なAI活用は、RPGソースをAIに読ませる時の注意点 と AS400 / IBM i 現場向けCodex実戦研修 で整理しています。
SQLエラーや接続で迷った時の入口
| 困りごと | 見るポイント | 次に読む記事 |
|---|---|---|
| SQL7008 | 対象ファイル、メンバー、ジャーナル、コミット | SQL7008の確認ポイント |
| SQL9010 | SQLCODE、SQLSTATE、ジョブログ、権限 | SQL9010の確認ポイント |
| ODBC/JDBC接続 | ACS、接続ユーザー、権限、ライブラリリスト | ODBC/JDBC接続の確認ポイント |
| 既存Query | WRKQRY、RUNQRY、抽出条件、出力先 | QUERY/400の確認ポイント |
ACS SQLの次に確認する記事
- QUERY/SQLでデータ確認する時のチェック
- DSPFFD/DSPPFMでファイル定義と中身を見る
- AS400データ抽出依頼の確認手順
- AS400ジャーナル確認手順|DSPJRNで更新前後と戻し判断を見る
- AS400コマンド逆引き
SQL確認を相談する前に決めること
ACS SQLでAS400 / IBM iのデータを確認する時は、SELECTだけでも条件を誤ると件数が膨らんだり、機密情報を広く出しすぎたりします。外部へ抽出や調査を相談する前に、対象範囲と利用目的を決めておくと安全です。
| 決める項目 | 確認する理由 |
|---|---|
| 対象データ | 会社、拠点、期間、得意先、商品など、WHERE条件にする項目を決めます。 |
| 利用目的 | 調査、監査、移行、外部連携で必要な項目と粒度が変わります。 |
| 権限と機密情報 | 個人情報、単価、取引先情報を出すか、マスキングするかを確認します。 |
| 出力方法 | 画面確認だけか、CSVやExcelで渡すのかを先に分けます。 |
抽出条件を詰める場合は、AS400データ抽出ガイドとAS400業務ヒアリングシートも確認してください。
SQLコマンド・RUNSQLSTMで探す前に決めること
「AS400 SQLコマンド」「RUNSQLSTM」「SQL JOIN」「SQL SUBSTRING」で調べている時は、確認用のSELECTなのか、本番更新なのかを最初に分けます。SQL Servicesは運用確認に便利ですが、UPDATE/DELETEや大量抽出は、権限、バックアップ、レビュー、戻し方を決めてから扱う必要があります。
- データ確認の流れを見る: Query/SQLデータ確認チェックリスト
- 本番更新の承認を見る: 本番SQL更新の承認フロー
- SQL7008などのエラーを見る: SQL7008 / Db2 for i確認
ACS SQLを使う人を社内で増やすときの注意
ACS SQLはAS400 / IBM i の状態確認やデータ調査に便利ですが、使える人を増やすときは、権限、参照専用の範囲、実行してよいSQL、実行してはいけないSQLを先に決めておく必要があります。
若手や非AS400出身者に教える場合は、SQLの書き方だけでなく、どの画面やジョブログと照合するか、結果をどう保守判断に使うかまで練習すると効果が出やすくなります。Codexは、SQLの意味説明、確認観点の整理、手順書の下書きに使うと安全です。
