Loading session...

AI Roundtable Open Debate · 4 models

Dbeaver ibm-i 接続 デフォルトライブラリーの指定は?

Answer: 接続設定の「Database」欄(JDBC URLのパス指定 `jdbc:as400://HOST/MYLIB`)で指定します。 (All 4 models agreed)

Model Responses

Gemini 3.7 Flash

Answer: DBeaverでIBM i(JT400)接続時のデフォルトライブラリを指定するには、接続設定の「Database(スキーマ)」欄(JDBC URLのパス部分)に指定するか、「ドライバプロパティ」の「libraries」を設定します。

IBM i(JT400/JTOpen JDBCドライバ)では、主に以下の2つの方法でデフォルトライブラリおよびライブラリリストを設定できます。 1. 【接続設定のDatabase欄/URLパスで指定(推奨)】 接続作成・編集画面の「データベース/スキーマ(Database)」欄にライブラリ名(例: `MYLIB`)を入力します。これによりJDBC URLが `jdbc:as400://HOST/MYLIB` となり、接続時のデフォルトスキーマ(カレントライブラリ)として設定されます。 2. 【ドライバプロパティの「libraries」で指定】 「ドライバプロパティ」タブで `libraries` プロパティにライブラリ名(複数可: `MYLIB, QGPL, *LIBL` など)を指定します。SQL命名規則(`naming=sql`)の場合、先頭に指定したライブラリがデフォルトとして扱われます。 【命名規則(naming)との関係】 ・`naming=sql`(デフォルト):ピリオド区切り(`LIB.FILE`)。無修飾のテーブル参照は上記で指定したデフォルトライブラリが優先されます。 ・`naming=system`:スラッシュ区切り(`LIB/FILE`)。従来のIBM iと同様にライブラリリスト(*LIBL)全体を検索順序に従って参照したい場合に指定します。 状況に応じて、接続設定の「初期化」タブで `SET CURRENT SCHEMA = 'MYLIB'` を実行することでもセッション開始時のカレントスキーマを確実に固定できます。

GPT-5.6 Sol

Answer: DBeaverのIBM i接続でデフォルトSQLスキーマを指定する基本形は `jdbc:as400://HOST/LIBNAME` であり、`libraries` は主にライブラリーリストを設定する別のプロパティです。

前回答を維持します。JTOpen(jt400)のJDBC URLでは、ホスト名直後のパスがデフォルトSQLスキーマです。例えば `jdbc:as400://192.0.2.1/MYLIB` と指定します。DBeaverでは接続編集画面の「Database」欄がこのパスに対応する場合がありますが、生成されたJDBC URLを確認するのが確実です。 一方、`libraries=LIB1,LIB2` は接続ジョブのライブラリーリストを構成するためのプロパティであり、「デフォルトスキーマ」と完全に同義ではありません。したがって、両方必要なら `jdbc:as400://HOST/MYLIB;libraries=MYLIB,QGPL` のように指定します。 システム命名規則で未修飾名をライブラリーリストから検索したい場合は、さらに `naming=system` を指定します。SQL命名規則で接続後に明示的に切り替えるなら、`SET CURRENT SCHEMA = 'MYLIB'` も利用できます。 他回答の `libraries` を使う案はライブラリーリストの設定として有用ですが、それを常にデフォルトSQLスキーマの指定とみなす説明には同意できないため、立場は変更していません。

Claude Fable 5 (changed mind)

Answer: DBeaverでIBM iのデフォルトライブラリーを指定するには、接続設定の「Database」欄(JDBC URLのパス部分 jdbc:as400://ホスト/ライブラリー名)でデフォルトスキーマを指定し、検索対象のライブラリーリストは「ドライバーのプロパティ」の「libraries」プロパティ(またはURLに ;libraries=... を追記)で制御するのが正しい使い分けです。

前回の私の回答は「libraries」プロパティを中心に説明しましたが、GPT-5.6 Solの指摘により、より正確な整理が必要だと納得しました。JT400ドライバーの仕様では「デフォルトスキーマの指定」と「ライブラリーリストの指定」は厳密には別の概念であり、この区別を明示すべきでした。 【デフォルトスキーマの指定(最も簡単な方法)】 DBeaverの接続設定で「Database」欄にライブラリー名を入力するか、URLを「jdbc:as400://ホスト名/MYLIB」の形にします。このパス部分に指定したライブラリーが、SQL命名規則(naming=sql)における修飾なしテーブル参照のデフォルトスキーマになります。GUIで完結する最もシンプルな方法です。 【ライブラリーリストの指定】 「ドライバーのプロパティ」タブで「libraries」プロパティにカンマ区切りで指定します(例: MYLIB,QGPL,*LIBL)。URLに「;libraries=MYLIB,QGPL」と追記しても同じです。JT400の仕様上、SQL命名規則でURLパスにスキーマ指定がない場合は、librariesの先頭ライブラリーがデフォルトスキーマとして機能するため、前回の私の説明も間違いではありませんが、両方の関係を示す方が正確です。 【namingプロパティとの関係(維持)】 naming=system にするとライブラリーリスト(*LIBL)による検索とLIB/TABLE形式の修飾が使えるようになり、従来のRPG/CLアプリと同じ挙動になります。この場合「libraries=*LIBL,MYLIB」のような指定が一般的です。この点は前回の説明を維持します。 【補足】 接続初期化SQLとして「SET CURRENT SCHEMA MYLIB」を実行する方法(DBeaverの接続設定→初期化→ブートストラップクエリー)も有効ですし、接続後にナビゲーターでスキーマを右クリックして「デフォルトに設定」する運用も可能です。 まとめると、単にデフォルトライブラリーを1つ指定したいだけなら「Database」欄(URLパス)が最も簡単で、ライブラリーリストの制御が必要な場合にlibrariesプロパティとnamingを組み合わせる、という使い分けが最適解です。

Grok 4.6

Answer: DBeaverのIBM i接続では、JDBC URLのパス部分(jdbc:as400://ホスト/ライブラリー名)またはドライバープロパティのlibrariesでデフォルトライブラリーを指定します。

他モデルの説明も確認しましたが、JT400(JTOpen)の公式なURL形式ではホスト直後のパスがデフォルトスキーマ(デフォルトライブラリー)になる点が最も直接的です。DBeaverでは接続設定の「Database」欄、またはURLの `jdbc:as400://ホスト名/MYLIB` がこれに相当します。 `libraries` は主にライブラリーリスト(*LIBL)の制御であり、デフォルトスキーマそのものとは別物です。複数ライブラリーを検索対象にするなら `libraries=LIB1,LIB2` をドライバープロパティかURLパラメータで追加します。`naming=sql` では非修飾名がデフォルトスキーマを参照し、`naming=system` ではライブラリーリストが使われ区切りも `LIB/FILE` になります。 接続後に `SET CURRENT SCHEMA = 'MYLIB'` を実行する方法もあります。ナビゲーター上の「デフォルトに設定」はエディタ上の便宜的な切替であり、恒久的な接続既定としてはURLパスかプロパティで指定するのが確実です。以上の理由で、当初の立場を維持します。

Final Summary

DBeaverでのIBM i接続におけるデフォルトライブラリ指定について、the AI Roundtableは「Database」欄(JDBC URLの `jdbc:as400://HOST/MYLIB`)での設定が基本であるという結論に達しました。議論の過程で GPT-5.6 Sol が「デフォルトスキーマ指定とライブラリリスト(librariesプロパティ)の厳密な違い」を提示したことで、当初プロパティ指定を中心に説明していた Claude Fable 5 や Gemini 3.7 Flash も見解を整理・修正しました。最終的に Grok 4.6 を含む全モデルが、単一のデフォルト指定にはURLパスを用い、複数ライブラリの検索順序制御には `libraries` を組み合わせるという役割分担で合致しました。

All 4 models agreed