Db2 LUWでは、CLPのLIST TABLESか、SQLのSYSCAT.TABLES参照で一覧を調べます。実行する入口と対象スキーマを先に決め、一覧に名前が出ることを、その表のデータを読める権限の証明にはしません。
CLPとSQLエディターで使うものを選ぶ
下の元の例にある「db2 =>」はCLPのプロンプトで、入力するコマンドの一部ではありません。LIST TABLESやDESCRIBE TABLEをJDBCへSQL文として送らず、アプリやSQLエディターではカタログをSELECTします。MySQLのSHOW TABLESと取り違えないでください。
一覧の対象は接続中のDBです。サーバー名/DB別名・実行しているツール・明示するスキーマを確認してから調べます。接続がない場合の暗黙接続設定もあるため、想定外の既定DBへつながっていないか確認してください。
長い名前が切れて見える場合は、CLPのLIST TABLES ... SHOW DETAILを確認します。公式資料では、通常表示で表名30文字・スキーマ名14文字を超える部分が省略されるため、表示の切り詰めだけを別名や欠落と判断しません。IBM Db2 11.5コマンド資料のLIST PACKAGES/TABLESを参照してください。
| この記事の要点 |
|---|
|
本稿はDb2 LUWのテーブル一覧を確認する方法を説明します。スキーマで探すことと所有者で探すことを分け、接続中のデータベースと取得対象を確認します。Db2 for i / z/OSへ同じカタログ名をそのまま当てはめる記事ではありません。
1. list tables コマンドで確認
DBに接続し、対話モード(CLP)で以下のコマンドを実行します。
|
db2 => list tables |
FORを省略するとFOR USERです。IBMのLUWコマンド資料には、ユーザー向けの一覧に対応するSQLとしてTABSCHEMA = USERの例があります。「そのユーザーが所有する全オブジェクト」を取り出す条件と同じではありません。明示したスキーマを探す場合は次のFOR SCHEMAを使い、スキーマ名と所有者を混同しません。
2. 特定スキーマのテーブル一覧
|
db2 => list tables for schema SCHEMA |
3. 接続中DB全体の一覧
|
db2 => list tables for all |
4. SQLで取得する(SYSCAT.TABLES)
プログラム経由や、テーブル種別・作成日でフィルタしたい場合はシステムカタログを使います。
|
SELECT TABSCHEMA, TABNAME, TYPE, CREATE_TIME |
TYPE 列はテーブル種別を表します。
| TYPE | 意味 |
|---|---|
| T | 通常テーブル |
| V | ビュー |
| A | エイリアス |
| S | サマリーテーブル(MQT) |
| N | ニックネーム(フェデレーション) |
5. テーブル名で部分検索
|
SELECT TABSCHEMA, TABNAME |
関連コマンド
list tables: 既定のFOR USERの一覧。CURRENT SCHEMAを変えたことだけで一覧対象も切り替わると決めつけないlist tables for schema SCHEMA: 特定スキーマlist tables for all: 接続中DBの全体一覧。別DBまで横断するコマンドではないdescribe table TABLE: テーブル定義の確認SYSCAT.TABLES: SQLでテーブル一覧を取得
注意点
- 通常の識別子は大文字へ変換されますが、二重引用符で囲んだ区切り識別子では小文字も使用できます。カタログの名前を確かめ、SQLの文字列条件まで一律に大文字へ変えないでください
list tablesのような CLP コマンドは、JDBC 経由では実行できない。アプリから取得したい場合はSYSCAT.TABLESを使うSYSCAT.TABLESにはシステム側のオブジェクトも含まれます。必要な業務スキーマを明示するのが基本です。TABSCHEMA NOT LIKE 'SYS%'は名前の接頭辞による除外にすぎず、用途・所有者・操作権限を判定する条件ではありません
アプリからスキーマを指定して取得するSQL
以下の?はJDBC等のprepared statementへ渡す値のパラメータです。実行前に実在するスキーマ名を1番目のパラメータへ文字列として設定します。CLPへ?付きのまま貼り付ける完成コマンドではありません。DB名・表名を入力値から連結する例でもありません。
SELECT TABSCHEMA, TABNAME, TYPE, CREATE_TIME
FROM SYSCAT.TABLES
WHERE TABSCHEMA = ?
AND TYPE = 'T'
ORDER BY TABSCHEMA, TABNAME;
たとえばAPPという通常の識別子で作成したスキーマならAPPを、"Sales"という区切り識別子で作成したものならSalesを値として渡します。区切りの二重引用符自体は値に含めません。SQLの文字列リテラルと識別子の引用を区別し、検索のために既存オブジェクトを改名したり照合規則を変更したりしないでください。
この例はTYPE = 'T'に限定します。ビュー/エイリアス/MQT/型付き表などが必要なら、対象版のSYSCAT.TABLESのTYPE定義を先に確認して条件を選びます。元の「通常テーブル」という説明を、あらゆる種類の表を含む意味に広げないでください。複数スキーマに広げる場合も、名前だけでなくTABSCHEMAとTABNAMEを組にして識別します。
名前で検索するときの注意
元のLIKE 'USER%'はUSERから始まる名前の検索です。%は任意長、_は1文字のワイルドカードなので、文字そのものとして含む名前の検索とは別です。元の例にはスキーマ/TYPE条件や並び順がないため、別スキーマの同名オブジェクトやビュー等も対象になり得ます。必要な条件を先に決め、値はパラメータで渡します。バインドしてもLIKEのワイルドカードの意味が消えるわけではありません。
一覧が空・実データを読めない場合
- 接続中DB、指定スキーマ、名前の大小文字と区切り識別子を照合する。
- TYPE条件で目的のオブジェクトを除外していないか確認する。まず存在する名前を記録し、表を新規作成して埋め合わせない。
- カタログを読む権限と対象表のSELECT等の権限を分けて確認する。名前が見えるだけでデータ参照可とは判断しない。
- エラー時はSQLSTATE/SQLCODEと実行した入口を記録する。管理者権限の全面付与や本番設定変更を一律の対処にしない。
2026年10月、IBM公式の識別子の規則と上記コマンド資料を照合しています。Db2実機でのCLP/JDBC/権限設定はこの更新では未検証です。関連項目は親のDB2ページの子ページから選択してください。元の5つのコード表は本文中に保持しています。
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09