1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(QA) 「システム名は NS_JOB です。スキーマは QSYS2 です。」システム名とは何ですか?

Last updated at Posted at 2025-02-25

こちらの記事でご質問頂いた件、

IBM i サービス NETSTAT_JOB_INFO ビュー のマニュアルページ(こちら)に記載のある、システム名 ってなに?という質問です。

image.png

上記の反転個所の記載です。
IBM i に精通していないといきなりわからないですよね。

この場合の「システム名」とは何を指すか?

答えはこの場合、「システム名」=「IBM i OS上でのオブジェクト名」です。

なぜこういう事が起こるかというと、IBM i OS上のオブジェクト名は10桁まで、というOS/400時代の名残?仕様?制約?があるからです。

IBM i サービスでは分かりやすくするために長い(10文字以上128文字までの)ビュー名、テーブル名、関数名を多用しているのですが、それらの実体としてのオブジェクトは10桁以内の名前を付けないといけない、という制約があるんですね。

IBM i サービス NETSTAT_JOB_INFO ビューで確認してみる

それでは実際に確認してみます。
マニュアルページに記載からIBM i OS上のオブジェクト名は QSYS2/NS_JOB と分かっていますので、DSPFDコマンドでファイルの属性、DSPFFDコマンドでカラム属性を確認してみます。

DSPFDコマンドでLF QSYS2/NS_JOB のファイル属性を確認する。

DSPFD QSYS2/NS_JOB

結果はこちら。1ページ下にスクロールしたものを転記しています。
image.png

上記のようにこのLFはSQLで作成されていることが確認できます。作成するDDLでNET_STAT_JOBINFO というビュー名が指定されていることがわかります。このビュー名はSQLで使用できる別名として指定されることになります。非SQLからは使用できない名前、とも言えます。RPGⅢのF仕様書のPF名等で指定したい場合は、実体オブジェクト名であるNS_JOBを指定する必要があります。

DSPFFDコマンドでLF QSYS2/NS_JOB のカラム属性を確認する。

DSPFFD QSYS2/NS_JOB

上記コマンドの結果がこちら。
同様に1ページ下にスクロールした画面です。
image.png

一番上のフィールド属性を読み解くと、
image.png

フィールド名 CONN_TYPE : LF上のフィールド名です。RPGⅢなどで非SQLで扱う場合はこのカラム名を指定します。SQLからも使用可能です

代替名 CONNECTION_TYPE : SQLからだけ使用可能な別名です。RPGⅢなどでは使用できません。

代替名はSQLで10桁よりも長いカラム名、フィールド名を使用したい、というニーズから追加されたものです。

IBM i OSシステム名(IBM i オブジェクト名)を使用したSQL実行例

ビュー名をNS_JOBに変えています。

  SELECT * FROM QSYS2.NS_JOB
  WHERE CONNECTION_TYPE = 'IPV4' ;

結果は下記のようにSQL別名を指定した場合と同じ結果が返ります。

image.png

カラム名にシステム名 CONN_TYPE を指定してみます。
image.png

SQL別名と同様に結果が返ります。

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?