DESCRIBE コマンド
DESCRIBE コマンドは、表またはビューの列、索引、およびデータ・パーティションに関するメタデータを表示します。 このコマンドは、SELECT、CALL、または XQuery ステートメントの出力に関するメタデータも表示できます。
- SELECT または XQuery ステートメントの出力
- CALL ステートメントの OUT および INOUT パラメーター
- 表またはビューの列
- 表またはビューの索引
- 表またはビューのデータ・パーティション
許可
- SYSTOOLSTMPSPACE 表スペースが存在する場合、以下の表に示されている権限の 1 つが必要になります。
情報を表示するオブジェクト 必要な特権または権限 SELECT ステートメントまたは XQuery ステートメントの出力 以下の権限の少なくとも 1 つが必要です。 - DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
- EXPLAIN 権限
- ステートメント内で参照されたそれぞれのオブジェクトごとに次の特権が必要です。
- それぞれの表、ビュー、またはニックネームに対する SELECT 特権
- 表、ビュー、またはニックネームが含まれるスキーマに対する SELECTIN 特権
- 各ルーチンに対する EXECUTE 特権
- 各グローバル変数に対する READ 特権。
- 各シーケンスに対する USAGE 特権
- 各モジュールに対する EXECUTE 特権
- オブジェクトが含まれるスキーマに対する DATAACCESS
CALL ステートメントの OUT および INOUT パラメーター 以下の特権または権限のいずれか。 - DATAACCESS 権限
- ストアード・プロシージャーでの EXECUTE 特権
- ストアード・プロシージャーが含まれるスキーマに対する EXECUTEIN 特権
- ストアード・プロシージャーが含まれるスキーマに対する DATAACCESS 権限
表またはビューの列 SYSCAT.COLUMNS システム・カタログ表に対して、以下のいずれかの特権または権限: - SELECT 特権
- SYSCAT に対する SELECTIN 特権
- ACCESSCTRL 権限
- DATAACCESS 権限
- DBADM 権限
- SECADM 権限
- SQLADM 権限
SHOW DETAIL パラメーターを使用する場合、SYSCAT.DATAPARTITIONEXPRESSION システム・カタログ表に対しても、これらの特権または権限のいずれかが必要になります。
PUBLIC には宣言済み一時表に対するすべての特権が付与されているので、 このコマンドを使用して、接続内に存在するすべての宣言済み一時表に関する情報を表示できます。
表またはビューの索引 SYSCAT.INDEXES システム・カタログ表に対して、以下のいずれかの特権または権限: - SELECT 特権
- SELECTIN 特権
- ACCESSCTRL 権限
- DATAACCESS 権限
- DBADM 権限
- SECADM 権限
- SQLADM 権限
SHOW DETAIL パラメーターを使用する場合、GET_INDEX_COLNAMES() UDF に対する EXECUTE 特権も必要です。
PUBLIC には宣言済み一時表に対するすべての特権が付与されているので、 このコマンドを使用して、接続内に存在するすべての宣言済み一時表に関する情報を表示できます。
表またはビューのデータ・パーティション SYSCAT.DATAPARTITIONS システム・カタログ表に対して、以下のいずれかの特権または権限: - SELECT 特権
- SELECTIN 特権
- ACCESSCTRL 権限
- DATAACCESS 権限
- DBADM 権限
- SECADM 権限
- SQLADM 権限
PUBLIC には宣言済み一時表に対するすべての特権が付与されているので、 このコマンドを使用して、接続内に存在するすべての宣言済み一時表に関する情報を表示できます。
- SYSTOOLSTMPSPACE 表スペースが存在しない場合は、上にリストされた権限のいずれかに加えて SYSADM または SYSCTRL 権限も必要になります。
必要な接続
データベース。 暗黙的な接続が可能である場合には、 デフォルトのデータベースへの接続が確立されます。
コマンド構文
コマンド・パラメーター
- OUTPUT
- ステートメントの出力を記述するよう指示します。 このキーワードはオプションです。
- select-statement | call-statement | XQUERY XQuery-statement
- 情報が必要なステートメントを識別します。 ステートメントは CLP によって自動的に準備されます。 XQuery ステートメントであることを示すには、ステートメントの先頭にキーワード XQUERY を入れます。 DESCRIBE OUTPUT ステートメントで暗黙的な隠し列についての情報が戻されるのは、記述対象の照会の最終的な結果表の SELECT リスト内にその列が明示的に指定されている場合のみです。
- TABLE table-name
- 記述する表またはビューを指定します。 schema.table-name 形式の完全修飾名を使用しなければなりません。 実際の表の代わりに表の別名を使用することはできません。 暗黙的に非表示になっている列に関する情報が戻されますが、どの列が暗黙的に非表示にされているかを示すには SHOW DETAIL を使用する必要があります。DESCRIBE TABLE コマンドは、各列に関する以下の情報をリストします。
- 列名
- タイプ・スキーマ
- タイプ名
- 長さ
- スケール
- NULL 値 (yes/no)
- INDEXES FOR TABLE table-name
- 索引を記述する必要がある表またはビューを指定します。 schema.table-name という形式の完全修飾名を使用するか、table-name のみを指定してデフォルトのスキーマが自動的に使用されるようにできます。 実際の表の代わりに表の別名を使用することはできません。DESCRIBE INDEXES FOR TABLE コマンドは、 その表またはビューの各索引に関する以下の情報をリストします。
- 索引スキーマ
- 索引名
- ユニーク規則
- 列の数
- キーワード・タイプ
DESCRIBE INDEXES FOR TABLE コマンドが SHOW DETAIL オプションを指定して使用される場合、索引名が 18 バイトより長いと、索引名は切り捨てられます。 索引タイプ・オプションが指定されていない場合は、すべての索引タイプの情報 (リレーショナル・データ索引、 XML データの索引、およびテキスト検索索引) がリストされます。 出力には以下の追加情報が含まれます。- リレーショナル・データ索引の索引 ID、XML パス索引、XML 領域索引、または XML データに対する索引
- XML データの索引 のデータ・タイプ
- XML データに対する索引 のハッシュ
- XML データの索引 の最大 VARCHAR 長
- XML データの索引 に指定された XML パターン
- テキスト検索索引のコード・ページ
- テキスト検索索引の言語
- テキスト検索索引に指定された形式
- テキスト検索索引の更新最小数
- テキスト検索索引の更新頻度
- テキスト検索索引のコレクション・ディレクトリー
- 前に
+
(昇順の場合)、-
(降順の場合)、および*
(ランダム順の場合) が付いた索引の列名。 - 式ベースの索引キーのいずれかの部分の生成列名の次にある大括弧で囲まれた式。
- BUSINESS_TIME WITHOUT OVERLAPS 節の指定の有無
特定の索引タイプについてだけの情報をリストする索引タイプを指定します。 複数の索引タイプの指定はサポートされていません。
列名は、8256 バイトより長い場合切り捨てられます。
- RELATIONAL DATA
- RELATIONAL DATA 索引タイプ・オプションが SHOW DETAIL オプションなしで指定されている場合は、以下の情報だけがリストされます。
- 索引スキーマ
- 索引名
- ユニーク規則
- 列の数
- NULL キー
SHOW DETAIL を指定した場合、列名情報もリストされます。
- XML DATA
- XML DATA 索引タイプ・オプションが SHOW
DETAIL オプションなしで指定された場合は、以下の情報のみがリストされます。
- 索引スキーマ
- 索引名
- ユニーク規則
- 列の数
- キーワード・タイプ
SHOW DETAIL を指定すると、 XML データの索引 に関する以下の情報もリストされます。
- 索引 ID
- データ・タイプ
- ハッシュ
- 最大 varchar 長
- XML パターン
- 列名
- TEXT SEARCH
- TEXT SEARCH 索引タイプ・オプションが SHOW DETAIL オプションなしで指定された場合は、以下の情報のみがリストされます。
- 索引スキーマ
- 索引名
SHOW DETAIL を指定した場合、以下のテキスト検索索引情報もリストされます。
- 列名
- コード・ページ
- 言語
- 形式
- 更新最小数
- 更新頻度
- コレクション・ディレクトリー
TEXT SEARCH オプションが指定され、テキスト検索オプションがインストールされていないか正しく構成されていない場合、エラー (SQLSTATE 42724) が戻されます。
列にリストされる情報については、 Db2® Text Search を参照してください。
- DATA PARTITIONS FOR TABLE table-name
- データ・パーティションを記述する必要がある表またはビューを指定します。 表に含まれるデータ・パーティションごとに表示される情報には、パーティション ID とパーティション・インターバルが含まれます。 結果は、パーティション ID の順になっています。 schema.table-name 形式の完全修飾名を使用しなければなりません。 実際の表の代わりに表の別名を使用することはできません。 schema はユーザー名で、その下に表またはビューが作成されます。DESCRIBE DATA PARTITIONS FOR TABLE コマンドの場合、出力に以下の追加情報を含む 2 番目のテーブルを含めることを指定します。
- データ・パーティション順序 ID
- SQL でのデータ・パーティション式
- SHOW DETAIL
- DESCRIBE TABLE コマンドの場合、出力に以下の追加情報を含めることを指定します。
- CHARACTER、VARCHAR または LONG VARCHAR 列のいずれかが FOR BIT DATA として定義されたかどうか
- 列番号
- 分散キー・シーケンス
- コード・ページ
- 非表示属性
- デフォルト
- 表パーティションのタイプ (範囲によってパーティション化されている表の場合、元の出力の後にこの出力が表示される)
- パーティション・キー列 (範囲によってパーティション化されている表の場合、元の出力の後にこの出力が表示される)
- 索引に使用される表スペースの ID
- 表に定義された期間 (テンポラル表の場合、元の出力の後にこの出力が表示される)
- 表でバージョン管理が有効かどうか (テンポラル表の場合、元の出力の後にこの出力が表示される)
例
- Describing the output of a SELECT Statement
- 次に示すのは、SELECT ステートメントを記述する方法の一例です。
db2 describe output select * from staff
Column Information Number of columns: 7 Data Type Length Column Name Name Length -------------------- ------ ------------------------------ -------------- 500 SMALLINT 2 ID 2 449 VARCHAR 9 NAME 4 501 SMALLINT 2 DEPT 4 453 CHARACTER 5 JOB 3 501 SMALLINT 2 YEARS 5 485 DECIMAL 7,2 SALARY 6 485 DECIMAL 7,2 COMM 4
- Describing the OUT and INOUT parameters of a CALL Statement
- 次のステートメントでストアード・プロシージャーが作成されたとします。
次の例は、CALL ステートメントの OUT および INOUT を記述する方法を示しています。CREATE PROCEDURE GIVE_BONUS (IN EMPNO INTEGER, IN DEPTNO INTEGER, OUT CHEQUE INTEGER, INOUT BONUS DEC(6,0)) ...
db2 describe output call give_bonus(123456, 987, ?, 15000.) Column Information Number of Columns: 2 Data Type Length Column Name Name Length -------------------- ------ ------------------------------ -------------- 497 INTEGER 4 CHEQUE 6 485 DECIMAL 6, 0 BONUS 5
プロシージャーで配列タイプに 1 つ以上のパラメーターがある場合、DESCRIBE コマンドの出力には追加列が 1 つあります。これは、配列パラメーターの最大カーディナリティーを示します。 空の値は、パラメーターが配列でないことを示します。
ステートメントで作成された配列タイプおよびプロシージャーを指定すると、次のようになります。
CREATE TYPE PRODUCT_LIST AS INTEGER ARRAY[100] CREATE TYPE CUSTOMER_LIST AS INTEGER ARRAY[1000] CREATE PROCEDURE DISCONTINUE_PROD (IN PROD_LIST PRODUCT_LIST, IN EFFECTIVE_DATE DATE, OUT NUM_PENDING_ORDERS INTEGER, OUT CUST_LIST CUSTOMER_LIST) ...
次の例は、配列パラメーターを使用して CALL ステートメントの OUT および INOUT パラメーターを記述する方法を示しています。 前の例との形式の違いは、
Max cardinality
列のみです。db2 describe output call discontinue_prod(ARRAY[12, 34, 26],'04/13/2006',?) Column Information Number of Columns: 2 SQL type Type length Column name Name length Max cardinality -------------------- ----------- ------------------------------ -------------- --------------- 497 INTEGER 4 NUM_PENDING_ORDERS 17 497 INTEGER 10 CUSTOMER_LIST 13 1000
- Describing the output of an XQuery Statement
- XML データ・タイプの列 INFO を含む表 CUSTOMER に対する XQuery ステートメントの記述例を以下に示します。
db2 describe xquery for $cust in db2-fn:xmlcolumn("CUSTOMER.INFO") return $cust
Column Information Number of Columns: 1 SQL type Type length Column name Name length -------------------- ----------- ------------------------------ -------------- 998 XML 0 1 1
キーワード XQUERY が指定されていない場合、SQL0104N が戻されます。
db2 describe for $cust in db2-fn:xmlcolumn("CUSTOMER.INFO") return $cust SQL0104N An unexpected token "for" was found following "DESCRIBE". Expected tokens may include: "OUTPUT". SQLSTATE=42601
XQUERY オプションをサポートしていない前のサーバーに対して DESCRIBE XQUERY コマンドを発行すると、その機能が前のサーバーでサポートされていないことを示すメッセージ DB21108E が返されます。
- Describing a Table
- 次に示すのは、表を記述する方法の一例です。
db2 describe table user1.department
Table: USER1.DEPARTMENT Column Data Type Data Type Column name schema name length Scale Nulls ------------------ ----------- ------------------ -------- -------- -------- AREA SYSIBM SMALLINT 2 0 No DEPT SYSIBM CHARACTER 3 0 No DEPTNAME SYSIBM CHARACTER 20 0 Yes
次に示すのは、詳細を含めて表索引を記述する方法の一例です。 この例の場合のように表がパーティション化されている場合、付加的な詳細が既存の出力の後に表示されます。 非パーティション表の場合、付加的な表ヘッダーは表示されません。db2 describe table user1.employee show detail
Column Data Type Column Data Type Column Hidden name schema number name length ------------------ ----------- --------- ----------- -------- ---------- FIRST SYSIBM 0 CHARACTER 10 No LAST SYSIBM 1 CHARACTER 10 No EMPLOYEENUM SYSTEM 2 CHARACTER 10 Implicitly Table is partitioned by range (ordered on the following column/s): ------------------------------------------------------------------ LAST FIRST EMPLOYEENUM
- Describing a Table Index
- 次に示すのは、表索引を記述する方法の一例です。 このコマンドは、2 つのリレーショナル・データ索引、6 つの XML データ索引、2 つのテキスト検索索引、およびシステム索引をリストします。
db2 describe indexes for table user1.department
Index Index Unique Number of Index schema name rule columns type -------------- ------------------ -------------- ------------- -------------- SYSIBM SQL070531145253450 D - XML DATA - REGIONS SYSIBM SQL070531145253620 U 1 XML DATA - PATH USER1 RELIDX1 D 1 RELATIONAL DATA USER1 RELIDX2 D 2 RELATIONAL DATA SYSIBM SQL070531145253650 P 1 RELATIONAL DATA USER1 XMLIDX1 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154625650 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX2 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626000 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX3 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626090 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX4 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626190 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX5 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626290 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX6 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626400 D 1 XML DATA - VALUES PHYSICAL USER1 TXTIDX1 - 1 TEXT SEARCH USER1 TXTIDX2 - 1 TEXT SEARCH
以下のコマンドは、表 USER1.DEPARTMENT のリレーショナル・データ索引をリストします。db2 describe relational data indexes for table user1.department
Index Index Unique Number of Null schema name rule columns keys -------------- ------------------ -------------- ------------- ---- SYSIBM SQL070531145253650 P 1 Y USER1 RELIDX1 D 1 N USER1 RELIDX2 D 2 Y
以下のコマンドは、表 USER1.DEPARTMENT の XML データに対する索引をリストします。db2 describe xml data indexes for table user1.department
Index Index Unique Number of Index schema name rule columns type -------------- ------------------ -------------- ------------- -------------- SYSIBM SQL070531145253450 D - XML DATA - REGIONS SYSIBM SQL070531145253620 U 1 XML DATA - PATH USER1 XMLIDX1 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154625650 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX2 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626000 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX3 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626090 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX4 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626190 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX5 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626290 D 1 XML DATA - VALUES PHYSICAL USER1 XMLIDX6 D 1 XML DATA - VALUES LOGICAL SYSIBM SQL070531154626400 D 1 XML DATA - VALUES PHYSICAL
以下のコマンドは、表 USER1.DEPARTMENT のテキスト検索索引情報をリストします。db2 describe text search indexes for table user1.department
Index Index schema name -------------- ------------------ USER1 TXTIDX1 USER1 TXTIDX2
以下のコマンドは、パーティション表 myDpartT のパーティションおよび非パーティション索引の両方に関する情報をリストします。db2 describe indexes for table myDPartT
Index Index Unique Number of Index Partitioning schema name rule columns ------------------------------- ------------------- -------------- -------------- ------------- NEWTON IDXNDP D 1 N NEWTON IDXDP D 1 P
- Describing Data Partitions
- 次に示すのは、データ・パーティションを記述する方法の一例です。
db2 describe data partitions for table user1.sales
PartitionId Inclusive (y/n) Inclusive (y/n) Low Value High Value ------------- -- -------------- -- ------------- 0 Y 2001,1 Y 2001,3 1 N 2001,3 Y 2001,6 3 N 2001,6 Y 2001,9
詳細を含めてデータ・パーティションを記述した場合、前の例と同じ出力に加えて、パーティション ID およびデータ・パーティションのデータの入っている表スペースと、索引の入っている表スペースの ID を示す付加的な表が戻されます。db2 describe data partitions for table user1.employee show detail
PartitionId Inclusive (y/n) Inclusive (y/n) Low Value High Value ------------- -- ------------------ -- ------------- 0 Y MINVALUE,MINVALUE Y 'beck','kevin' 1 N 'beck','kevin' N 'treece','jeff' 2 Y 'treece','jeff' Y 'zhang','liping' 3 Y 'zyzyck',MINVALUE Y MAXVALUE,MAXVALUE PartitionId PartitionName TableSpId LongTblSpId IndexTblSpId AccessMode Status ----------- ------------- --------- ----------- ------------ ---------- ------ 0 PARTx 3 43 50 F 1 PARTNew 13 13 13 N A 2 PART3 31 33 35 F 3 PART4 23 34 23 N A