IBM i はここ数年、どんどんどんSQLが使える機能が増えています。
レガシーなDB DDL,DMLのほか、IBM i サービスのように運用管理面でもSQLを多用(標準化)できる機能が増えてきました。
IBM i SQLサンプル隠し場所は2つ
IBM i はおよそ半年に1回、TR(テクノロジー・リフレッシュ)で機能拡張されていますが、IBM i サービスやDB周りのSQL拡張は毎回必ず、相当数が拡張されています。
問:新しい、使えるIBM i サービス、DDL,DMLなどSQLサンプルはどこに?
こたえ:ACS, Navigator for i から探せます
■今回ご紹介するサンプル一覧表
どこから? | SQLのカテゴリ | SQLサンプル | 取得できる情報 | ||
---|---|---|---|---|---|
ACS | ビルトイングローバル変数 | VALUES(SYSIBM.CLIENT_IPADDR) | クライアントの "IP" | ||
ACS | ビルトイングローバル変数 | VALUES(SYSIBM.CLIENT_PORT) | " ポート番号 " | ||
ACS | ビルトイングローバル変数 | VALUES(SYSIBM.CLIENT_HOST); | "ホスト名" | ||
ACS | ビルトイングローバル変数 | VALUES(QSYS2.JOB_NAME); | "ジョブ名" |
ACSのSQLサンプル
ACSのSQLサンプルにたどりつくには・・・
①SQLスクリプトの実行 をクリック
②編集メニュー -> 例 -> 例から挿入 をクリック
下記のようなSQLサンプル集画面が表示されます。
左上のカテゴリーを見ると上3つは一般的なDB操作(DDL,DML,DCL)ですね。それ以外にもIBM i サービス、Db2 for iサービス、SYSTOOLSなどこれまで紹介したことのある機能名が並んでいます。
Db2 Mirror for i の運用サンプルほかもあるようです。
以下でいくつか例をご紹介します。
ACS SQLサンプル カテゴリー:Built-in Global Variables (組込みグローバル変数)
クライアントIPアドレス
SQLを実行するクライアントのIPアドレス、ポート番号を取得
VALUES(SYSIBM.CLIENT_IPADDR);
VALUES(SYSIBM.CLIENT_PORT);
コメント:IBM i 7.2以降で利用可能
実行例(IPアドレス):
※背景のプロンプト画面はIPCONFIGコマンド実行結果です。末尾IPが150で同一です。
クライアントホスト名
SQLを実行するクライアントのホスト名を取得
VALUES(SYSIBM.CLIENT_HOST);
コメント:IBM i 7.2以降で利用可能
実行例:
※背景のプロンプト画面はIPCONFIGコマンド実行結果です。ホスト名が同一です。
クライアントのジョブ名
SQLを実行するクライアントのジョブ名を取得
VALUES(QSYS2.JOB_NAME);
コメント:IBM i 7.2以降で利用可能
実行例:
※SQL実行結果と、SQLスクリプト実行画面の最下行のメッセージ欄のジョブ名が同一です。