Hitachi

Hitachi Advanced Data Binder コマンドリファレンス


38.5.2 #COLUMNS(列情報の表示)

機能

指定された表の列情報を表示します。

形式
#COLUMNS 〔スキーマ名.〕表識別子 〔SHOW ALL〕;
スキーマ名.〕表識別子

列情報を表示する表名を,「スキーマ名.表識別子」の形式で指定します。スキーマ名を省略した場合は,このサブコマンドを実行するHADBユーザの認可識別子が仮定されます。

スキーマ名または表識別子中に,英小文字または\がある場合の指定規則については,「1.4.3 表名の指定規則」を参照してください。

〔SHOW ALL〕

このオプションを指定した場合

ディクショナリ表のSQL_COLUMNS表のすべての列が表示されます。表示される内容については,マニュアルHADB システム構築・運用ガイドSQL_COLUMNSの内容を参照してください。

このオプションを省略した場合

次の表に示す内容が表示されます。

表38‒4 #COLUMNSで表示される内容(オプションを省略した場合)

項番

列名

内容

1

COLUMN_NAME

列名

2

DATA_TYPE

データ型

配列型の場合は,次の形式で表示されます。

要素データ型 ARRAY[最大要素数]

3

DATA_LENGTH

列の定義長

詳細については,マニュアルHADB システム構築・運用ガイドSQL_COLUMNSの内容DATA_LENGTHを参照してください。

4

IS_NULLABLE

列に対する非ナル値制約定義の指定

詳細については,マニュアルHADB システム構築・運用ガイドSQL_COLUMNSの内容IS_NULLABLEを参照してください。

5

IS_DEFAULT_COLUMN

DEFAULT句の指定有無

  • 'Y'

    実表の定義時にDEFAULT句を指定した列

  • 'N'

    実表の定義時にDEFAULT句を指定していない列

留意事項
  • #COLUMNSを実行して表示される表の列情報の範囲は,HADBユーザが持っている権限によって異なります。表示される表の列情報の範囲を次に示します。

    DBA権限を持っているHADBユーザの認可識別子で接続している場合
    • すべてのHADBユーザが定義した表の列

    • スキーマ名がMASTERの表の列

    上記の権限を持っていないHADBユーザの認可識別子で接続している場合
    • 自分(HADBサーバに接続中の認可識別子のHADBユーザ)が定義した表の列

    • ほかのHADBユーザによって付与されたアクセス権限の対象となる表の列

    • PUBLIC指定で許可された表の列

    • スキーマ名がMASTERの表の列

    なお,#COLUMNSを実行して表示される表の列情報の範囲は,ディクショナリ表のSQL_COLUMNS表を参照できる範囲と同じです。詳細については,マニュアルHADB システム構築・運用ガイドディクショナリ表の概要HADBユーザが参照できるディクショナリ表の範囲を参照してください。

  • #COLUMNSを実行すると,ディクショナリ表の排他が取得されます。#COLUMNSを実行したあと,すぐにCOMMIT文を実行してください。COMMIT文を実行しないと,ディクショナリ表の排他が解放されません。ただし,#COLUMNSを実行したあとで,adbsqlコマンドを終了する場合は,ディクショナリ表の排他は解放されるため,COMMIT文の実行は不要です。

  • 存在しないスキーマ名や表識別子を指定した場合,#COLUMNSの実行結果は0行になります(エラーにはなりません)。

  • #SET DISPLAYOFF(検索結果を出力しない)を指定していても,#COLUMNSの実行結果は出力されます。adbsqlサブコマンドの#SET DISPLAYについては,「38.5.12 #SET DISPLAY(検索結果の出力)」を参照してください。

  • #SET EXECTIME REPORTON(SQL文の実行時間を出力する)を指定していても,#COLUMNSの実行時間は出力されません。adbsqlサブコマンドの#SET EXECTIME REPORTについては,「38.5.14 #SET EXECTIME REPORT(SQL文の実行時間の出力)」を参照してください。

  • #SET OPT REPORTON(インデクス情報,作業表情報,およびアクセスパス情報を表示する)を指定していても,#COLUMNSの実行時に,インデクス情報,作業表情報,およびアクセスパス情報は出力されません。adbsqlサブコマンドの#SET OPT REPORTについては,「38.5.16 #SET OPT REPORT(インデクス情報,作業表情報,およびアクセスパス情報の表示)」を参照してください。

  • #SET OPT REPORTEXEC=PREPARE(SQL文を実行しない)を指定していても,#COLUMNSの実行結果は出力されます。