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?

Redbook : IBM i 7.6 Features and Function を読む Chapter.5-③ Db2 for i VSCode拡張

Last updated at Posted at 2025-08-12

IBM i 7.6発表時点でのVS Code用Db2 for i エクステンションについての記載です。

特筆すべき機能、としてノートブックのサポートを挙げています。
ノートブックには以下のような、SQL コード、CL コマンド、マークダウンを 1 つの統合ビューから記述できます。

  • SQL クエリを即座に作成・実行
  • 再利用可能なスクリプトとワークフローガイドの作成
  • マークダウンを使用してワークフローとプロセスをステップごとにドキュメント化

以下がSQLのサンプルとして掲載されています。
image.png

Db2 for i のVS CodeエクステンションはVSCodeの拡張機能 → IBM i Development Pack(Code4i) の一部としてインストールされます。
image.png

SQL プロセッサー

Db2 for i 拡張機能はスクリプト内で SQL 文だけでなく CL コマンドも実行できます。JSON、CSV、生の SQL など、複数の出力プロセッサーから選択可能で、VS Code 内で結果の表示方法や使用方法を制御できます。下記の例のようにステートメントの冒頭に出力プロセッサーのタイプを指定できます。

-- result set as normal table
select * from sample.employee;

-- result set as JSON, will open in a new file
json: select * from sample.employee;

-- result set as CSV, will open in a new file
csv: select * from sample.employee;

-- result set as SQL insert statement
sql: select * from sample.employee;

-- run CL commands. output is directed to IBM i output channel
cl: dspffd sample/employee

ちょっと実行してみました。
普通にSQLを実行

SELECT * FROM DEMOLIB.TOKMSP

image.png

JSON形式で出力

json: select * from DEMOLIB.TOKMSP

別タブが開きます。
image.png

csv形式で出力

csv: select * from demolib.tokmsp

別タブが開き、下記のようにsqlの生成と結果を表示します。
image.png

元テーブルへのINSERT文を生成

sql: select * from sample.employee;

別タブが開きます。元テーブルのレコード数は210行ですが、42行だけでした。返す行数の制御はどうなっているのか?後ほど調べてみます。
image.png

CLコマンドを実行
DSPFFDコマンドでカラム情報他を表示。ここではOUTPUT(*PRINT)を指定してみました。

cl: DSPFFD DEMOLIB/TOKMSP OUTPUT(*PRINT)

すると、OUTQに
DSPFFDの結果スプールがデフォルト出力先のOUTQに生成されました。
image.png

SQLエラー・ロギング機能 (SQL Error Logging Facility : SELF)

IBM i で実行させたSQLのエラーほかのメッセージID,説明を表示してくれます。IBM i パネルに表示されます。
この機能を使用するには、IBM i OSでSYSIBMADM.SELFCODESグローバル変数を有効化(作成)し、その後、必要ならばVSCodeでログするSQLコードや対象(エラーだけ、警告含む、正常完了含む等)を SYSIBMADM.SELFCODESの属性を変更します。
IBM i 7.6では個別のSQLステータスコード(SQL0403のような)以外に以下のような設定ができます。
*ERROR : エラー状態(負の値) のすべてを表示
*WARN : 警告状態 (正の値)   "
*ALL : エラーまたは警告状態 ”
*NONE : SELFをオフ(エラー表示しない)

参考:SQL Error Logging Facility (SELF)
https://www.ibm.com/docs/en/i/7.6.0?topic=tools-sql-error-logging-facility-self

上記参考リンクを読みますと、SELFは基本的にはパフォーマンス上の懸念も極小化できるので本番環境で使用しても基本大丈夫(な事が多いはずである)、という記載もあります。

SQLエラー・ロギング機能(SELF)の設定確認方法

VSCodeで、ファイル → ユーザー設定 → 拡張機能 から Db2 for IBM i を探します。Db2 for i の中に SQL Error Logging Facility(SELF) の項目があり、設定の確認・変更が可能です。
image.png

上記の例ではSELFの対象をすべての*ALL SQL結果コードとしています。

以下ではテストをしてみます。存在しないカラム名を指定しています。
image.png

Visual Explainを実行できる

VSC内でVisual Explainを実行できます。SQL文を選択して、実行ボタンを押して Run and explain statementを選択します。
image.png

上記の例は select * all でちょっとイマイチですが(^^;、右下のウィンドウにExplainされたSQLの明細が表示されています。

image.png

見やすさはACSスクリプト実行画面の方が上かなあ、な感じですが、表示はクイックで速いと思います。

続く・・

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?