AS400(IBM i)を使用する中で、データの確認や抽出を行う手段としてよく登場するのが、DSPPFM(ディスプレイ・フィジカル・ファイル・メンバー)、RUNQRY(ラン・クエリ)、そしてSQLです。
本記事では、それぞれの特徴と違いについて、初心者の方にもわかりやすく説明してみます。
(1)DSPPFM(Display Physical File Member)
どのようなコマンドか?
DSPPFMは、物理ファイル(PF)の中身をそのまま画面に表示するためのコマンド。データベースのテーブルを「テキストファイルのように確認する」といったイメージが近いと思います。
主な特徴
• データの生データをそのまま表示
• 表示は固定長で、フィールド名などは確認できない
→単にデータが並んで表示されるだけなので、どこからどこまでが項目の値なのか特定できない(RUNQRY、SQLで対処)
• 表示専用(編集不可)
使用例
DSPPFM FILE(LIBRARY/FILE)
活用シーン
• ファイルが正しく読み込まれているかの確認
• データの整合性や文字コードの確認
(2) RUNQRY(Run Query)
どのようなコマンドか?
RUNQRYは、事前に WRKQRY コマンドで作成したクエリ定義(*QRYDFN)を実行して、条件に沿ったデータを抽出・表示するためのコマンドです。
主な特徴
• クエリ定義に基づきデータを抽出・表示
• 表形式で見やすい画面表示
• フィルターや並び替えも可能(柔軟性はやや限定的)
使用例
RUNQRY QRYFILE(MYLIB/MYQUERY)
RUNQRY *N MYLIB/MYQRY
活用シーン
• 定型的な検索や集計処理
• SQLに不慣れでも簡単にデータを取り扱いたいとき
(3) SQL
どのようなコマンドか?
SQL(Structured Query Language)は、データベースを操作する標準的な言語で、IBM i でも STRSQL(対話形式)などで使用します。
主な特徴
• 柔軟で高度なデータ抽出や結合、集計が可能
• SELECT、JOIN などのSQL文法を使用
使用例
STRSQLを打ち込んだ後に、SQL文を記載。
SELECT * FROM LIBRARY/FILE WHERE COLUMN1 = ‘条件’;
活用シーン
• 複雑な検索や集計、結合が必要な場合
• システム開発やバッチ処理への組み込みなど
コマンドの使い分けまとめ
目的 | 適したコマンド |
データの中身をざっくり確認 | DSPPFM |
決められた条件で抽出したい | RUNQRY |
複雑な条件で抽出したい | SQL |
おわりに
AS400(IBM i)では、同じ「データを確認する」作業でも、目的に応じて適切なコマンドを使い分けることが大切です!
私自身も最初は仕組みが分からず戸惑うことがありましたが、SQLのSELECT文を使いながら少しずつデータ構造を理解していくことで、だんだん慣れていくことができました。
SQLは参考書や解説サイトも充実していて学びやすいので、まずはSQLから始めてみるのも良い選択だと思います。
ぜひ自分に合った方法で、少しずつAS400の操作に慣れていってください!