SYSCAT.COLUMNS カタログ・ビュー

各行は、表、ビュー、またはニックネームに定義された列を表します。

表 1. SYSCAT.COLUMNS カタログ・ビュー
列名 データ・タイプ NULL 可能 説明
TABSCHEMA VARCHAR (128)   この列のある表、ビュー、またはニックネームのスキーマ名。
TABNAME VARCHAR (128)   この列のある表、ビュー、またはニックネームの非修飾名。
COLNAME VARCHAR (128)   列の名前。
COLNO SMALLINT   表の中のこの列の番号 (0 から始まる)。
TYPESCHEMA VARCHAR (128)   列のデータ・タイプのスキーマ名。
TYPENAME VARCHAR (128)   列のデータ・タイプの非修飾名。
LENGTH INTEGER   データの最大長。特殊タイプの場合は 0。LENGTH 列は、DECIMAL フィールドの精度を示し、10 進浮動小数点列に必要なストレージのバイト数を示します。DECFLOAT(16) と DECFLOAT(34) ではそれぞれ 8 と 16 です。
SCALE SMALLINT   列タイプが DECIMAL の場合は位取りで、列タイプが TIMESTAMP の場合には秒の小数部分の桁数。その他の場合には 0。
TYPESTRINGUNITS VARCHAR(11) Y Unicode データベースの場合は、文字ストリング・データ・タイプまたはグラフィック・ストリング・データ・タイプに適用されるストリング単位。それ以外の場合は NULL 値。
STRINGUNITSLENGTH INTEGER Y Unicode データベースの場合は、文字ストリング・データ・タイプまたはグラフィック・ストリング・データ・タイプに対して宣言されたストリング単位の数。それ以外の場合は NULL 値。
DEFAULT CLOB (64K) Y 列のデータ・タイプに適した定数、特殊レジスター、または cast 関数で表された表の列のデフォルト値。 キーワード NULL の場合もあります。 値は、デフォルト値として指定された値から変換されることがあります。 例えば、日時の定数は ISO フォーマットで表示され、cast 関数名はスキーマ名で修飾され、ID は区切り文字で区切られます。 DEFAULT 文節が指定されていないか、または列がビューの列の場合は、NULL 値になります。
NULLS CHAR (1)   列の NULL 可能性属性。
  • N = 列は NULL 不可。
  • Y = 列は NULL 可能。
式または関数から派生したビューの列の場合、値は N である可能性があります。それでも、このビューを使用するステートメントが処理され、 算術計算エラーの警告を出された場合は、この列に NULL 値が入ります。
CODEPAGE SMALLINT   この列のデータに使用されるコード・ページ。列が FOR BIT DATA として定義されている場合、またはストリング・タイプではない場合は 0。
COLLATIONSCHEMA VARCHAR (128) Y ストリング・タイプの場合は、列の照合のスキーマ名。それ以外の場合は NULL 値。
COLLATIONNAME VARCHAR (128) Y ストリング・タイプの場合は、列の照合の非修飾名。それ以外の場合は NULL 値。
LOGGED CHAR (1)   LOB タイプまたは LOB に基づく特殊タイプの列だけに適用されます。それ以外はブランクです。
  • N = 列のログ記録を取らない。
  • Y = 列のログ記録を取る。
COMPACT CHAR (1)   LOB タイプまたは LOB に基づく特殊タイプの列だけに適用されます。それ以外はブランクです。
  • N = 列を圧縮しない。
  • Y = ストレージ内で列を圧縮する。
COLCARD BIGINT   列の特殊値の数。統計が収集されていない場合は -1。 継承列および階層表の列の場合は -2。
HIGH2KEY1 VARCHAR (254) Y 2 番目に高いデータ値。 数値データを文字リテラルに変更して表現。 統計が収集されていない場合は空。 継承列および階層表の列の場合は空。
LOW2KEY1 VARCHAR (254) Y 2 番目に低いデータ値。 数値データを文字リテラルに変更して表現。 統計が収集されていない場合は空。 継承列および階層表の列の場合は空。
AVGCOLLEN INTEGER   列がデータベース・メモリーまたは一時表に保管される場合は、バイト単位の平均スペース。インライン化されていない LOB データ・タイプ、LONG データ・タイプ、および XML 文書の場合、列の平均長の算出に使用される値は、データ記述子の長さです。列が NULL 可能の場合には追加バイトが必要です。統計が収集されていない場合には -1、継承列、および階層表の列の場合には -2。注: ディスク上で列を保管するための平均スペース所要量は、この統計により表される値とは異なる場合があります。
KEYSEQ SMALLINT Y 表の主キー内の列の位置番号。副表および階層表の列の場合は NULL 値。
PARTKEYSEQ SMALLINT Y 表の分散キー内の列の位置番号。列が分散キー内にない場合は、0 または NULL 値。副表および階層表の列の場合は NULL 値。
NQUANTILES SMALLINT   この列の SYSCAT.COLDIST に記録された変位値の数。統計が収集されていない場合は -1。継承列および階層表の列の場合は -2。
NMOSTFREQ SMALLINT   この列の SYSCAT.COLDIST に記録された最大頻度の値の数。統計が収集されていない場合は -1。継承列および階層表の列の場合は -2。
NUMNULLS BIGINT   列内の NULL 値の数。 統計が収集されていない場合は -1。
TARGET_TYPESCHEMA VARCHAR (128) Y この列の型が REFERENCE の場合、ターゲット行タイプのスキーマ名。その他の場合、NULL 値。
TARGET_TYPENAME VARCHAR (128) Y この列の型が REFERENCE の場合、ターゲット行タイプの非修飾名。その他の場合、NULL 値。
SCOPE_TABSCHEMA VARCHAR (128) Y この列の型が REFERENCE の場合、有効範囲 (ターゲット表) のスキーマ名。その他の場合、NULL 値。
SCOPE_TABNAME VARCHAR (128) Y この列の型が REFERENCE の場合、有効範囲 (ターゲット表) の非修飾名。その他の場合、NULL 値。
SOURCE_TABSCHEMA VARCHAR (128) Y 型付き表またはビューの列の場合、列が最初に使われた表やビューのスキーマ名。非継承列の場合、これは TABSCHEMA と同じです。型なし表およびビューの列の場合は NULL 値。
SOURCE_TABNAME VARCHAR (128) Y 型付き表またはビューの列の場合、列が最初に使われた表やビューの非修飾名。非継承列の場合、これは TABNAME と同じです。型なし表およびビューの列の場合は NULL 値。
DL_FEATURES CHAR (10) Y この列は使用されなくなりました。将来のリリースで除去されます。
SPECIAL_PROPS CHAR (8) Y REFERENCE 型の列だけに適用されます。その他の場合はブランクです。 各バイト位置は、次のようにして定義されます。
  • 1 = オブジェクト ID (OID) 列 (yes の場合は "Y"、no の場合は "N")
  • 2 = ユーザー生成またはシステム生成 (ユーザーの場合は "U"、システムの場合は "S")
バイト 3 から 8 は、将来の使用のために予約されています。
HIDDEN CHAR (1)   隠し列のタイプ。
  • I = 列は IMPLICITLY HIDDEN として定義される
  • S = システムに管理される隠し列。
  • ブランク = 列は隠されていない。
INLINE_LENGTH INTEGER   基本表に保管できる XML 文書、構造化タイプ、または LOB データ・タイプのインスタンスの内部表記の最大サイズ (バイト数)。適用されない場合には 0。
PCTINLINED SMALLINT   VARCHAR、VARGRAPHIC、 LOB、または XML データ・タイプを持つ列のインライン化データのパーセント。統計が収集されていない場合、または列データ・タイプで行外でのデータの保管がサポートされていない場合は -1。 表がカラム・オーガナイズの場合、または表が行編成であり、表の行サイズが表スペースのページ・サイズの最大レコード長を超えていない場合も VARCHAR および VARGRAPHIC 列について -1。
IDENTITY CHAR (1)  
  • N = ID 列ではない。
  • Y = ID 列。
ROWCHANGETIMESTAMP CHAR (1)  
  • N = 行変更タイム・スタンプ列ではない
  • Y = 行変更タイム・スタンプ列
GENERATED CHAR (1)   生成される列の型。
  • A = 列の値が常に生成される
  • D = 列の値がデフォルトで生成される
  • ブランク = 列は生成されない
TEXT CLOB (2M) Y 式として生成されると定義された列の場合、このフィールドにはキーワード AS で始まる、生成列式のテキストが入ります。
COMPRESS CHAR (1)  
  • O = 圧縮をオフにする
  • S = システム・デフォルト値を圧縮する
AVGDISTINCTPERPAGE DOUBLE Y 将来の利用。
PAGEVARIANCERATIO DOUBLE   将来の利用のために予約済み。
SUB_COUNT SMALLINT   列のサブエレメントの平均数。 文字ストリング列のみに適用されます。
SUB_DELIM_LENGTH SMALLINT   列内の各サブエレメントを区切る、区切り文字の平均の長さ。 文字ストリング列のみに適用されます。
AVGCOLLENCHAR INTEGER   列に必要な平均文字数 (列で有効になっている照合に基づく)。列のデータ・タイプが long、LOB、または XML の場合、または統計が収集されていない場合は -1。継承列および階層表の列の場合は -2。
IMPLICITVALUE2 VARCHAR (254) Y 表の作成後に表に追加された列の場合、列の追加時のデフォルト値を保管します。 表の作成時に定義された列の場合、NULL 値を保管します。
SECLABELNAME VARCHAR (128) Y 保護された列の場合、その列に関連したセキュリティー・ラベルの名前。その他の場合は NULL 値。
ROWBEGIN CHAR (1)  
  • N = 行開始列ではない
  • Y = 行開始列
ROWEND CHAR (1)  
  • N = 行終了列ではない
  • Y = 行終了列である
TRANSACTIONSTARTID CHAR (1)  
  • N = トランザクション開始 ID 列ではない
  • トランザクション開始 ID 列
RANDDISTKEY CHAR (1)  
  • N = 表の列が生成別ランダム方式によるランダム分散を使用していない、または分散キーではない
  • Y = 生成別ランダム方式を使用するランダム分散表の分散キー
PCTENCODED SMALLINT   カラム・オーガナイズ表の列を圧縮した結果としてエンコードされる値のパーセンテージ。表が列で編成されていないか、統計が収集されていない場合は -1。継承列と階層表の列の場合は -2。
AVGENCODEDCOLLEN DOUBLE   一部の列値が圧縮されている可能性を考慮に入れたうえでの、データベース・メモリーに列を格納するための平均スペース (バイト単位)。表が列で編成されていない場合や統計が収集されていない場合は -1。継承列と階層表の列の場合は -2。
QUALIFIER VARCHAR (128) Y 将来の利用のために予約済み。
FUNC_PATH CLOB (2K) Y 将来の利用のために予約済み。
REMARKS VARCHAR (254) Y ユーザー提供のコメントまたは NULL 値。
注:
  1. カタログ・ビューでは、HIGH2KEY と LOW2KEY の値は常にデータベース・コード・ページ中に示されますが、 これには置換文字を収めることができます。 ただし、列の表のコード・ページ内で内部的に統計が収集されるので、 照会の最適化時に適用するときは実際の列値が使用されます。
  2. データ・パーティションのアタッチは、以下の状況でない限り、許可されています。すなわち、ソース列とターゲット列の両方に関して特定の列の IMPLICITVALUE が NULL 以外の値であり、かつ両者の値が一致していない場合です。この場合は、ソース表をドロップしてから再作成しなければなりません。以下の条件のうちの 1 つが満たされる場合に、列は IMPLICITVALUE フィールドで NULL 以外の値を持つことができます。
    • 列が ALTER TABLE...ADD COLUMN ステートメントの結果として作成される場合。
    • IMPLICITVALUE フィールドがアタッチ中にソース表から伝搬される場合。
    • IMPLICITVALUE フィールドがデタッチ中にソース表から継承される場合。
    • IMPLICITVALUE フィールドがバージョン 8 からバージョン 9 へのデータベースのアップグレード中に設定され、その際、追加された列であると判別されるか、追加された列である可能性がある場合。列が追加されたものかどうかをデータベースが確定できない場合、列は追加されたものとして扱われます。追加された列とは、ALTER TABLE...ADD COLUMN ステートメントの結果として作成された列です。
    マイグレーション以外のシナリオでこのような不整合を避けるため、アタッチ予定の表を作成する場合には必ずすべての列を定義しておくことをお勧めします。つまり、表をアタッチする前には、決して ALTER TABLE ステートメントを使って表に列を追加しないということです。