Hitachi

Hitachi Advanced Database コマンドリファレンス


42.5.17 #SET TABLEMODE(検索結果の出力形式の指定)

機能

検索結果を表形式で出力するかどうかを指定します。

初期値はON(検索結果を表形式で出力)になります。

形式
#SET TABLEMODE {ON|OFF};
ON

検索結果を表形式で出力します。

OFF

検索結果1行に対して,1列分のデータを1行ずつ出力します。例えば,検索結果1行に3列のデータがある場合,検索結果は3行で表示されます。

定義長が長いVARCHAR型やSTRING型の実長部分のデータだけを表示したい場合は,OFFを指定してください。

出力形式

OFFを指定した場合の出力形式を次に示します。ONを指定した場合の出力形式については,「42.7.2 操作系SQLの場合(SELECT文)」を参照してください。

SELECT "C1", "C2" FROM "T1";
  NO   DATA+----1----+----2----+----3----+----4----+----5          ...1
     1 SV001                                                       ...2
     2 100                                                         ...3
  NO   DATA+----1----+----2----+----3----+----4----+----5          ...4
     1 SV002                                                       ...5
     2 **************************************************          ...6
KFAA96404-I 2 rows were selected.                                  ...7
KFAA96415-I SQL processing time (Fetch) : 0.477001 sec.            ...8

[説明]

  1. 列番号とデータの定型文が表示されます。

  2. 列番号「1」と検索結果の1行目の1列目のデータが表示されます。列番号は右詰めで表示され,データは左詰めで表示されます。データ型ごとのデータの文字形式は「表42‒7 各データ型の文字形式」を参照してください。

  3. 列番号「2」と検索結果の1行目の2列目のデータが表示されます。列番号は右詰めで表示され,データは左詰めで表示されます。データ型ごとのデータの文字形式は「表42‒7 各データ型の文字形式」を参照してください。

  4. 列番号とデータの定型文が表示されます。

  5. 列番号「1」と検索結果の2行目の1列目のデータが表示されます。列番号は右詰めで表示され,データは左詰めで表示されます。データ型ごとのデータの文字形式は「表42‒7 各データ型の文字形式」を参照してください。

  6. 列番号「2」と検索結果の2行目の2列目のデータが表示されます。検索結果がナル値の場合は,ナル値表示文字列が表示されます。ただし,ナル値表示文字列の長さが50バイトを超える場合は,ナル値表示文字列が途中で切り捨てられます。

    なお,配列型の列については,次のように表示されます。

    • 列値がナル値の場合,50バイトまでのナル値表示文字列が表示されます。

    • 配列要素がナル値の場合,各配列要素がコンマ(,)で区切られ,ナル値の配列要素にNULLが表示されます。

  7. 検索結果の行数が表示されます。表示できる行数の上限を超えた場合,アスタリスク(*)が3つ表示されます。

  8. #SET EXECTIME REPORTON(SQL文の実行時間を出力する)を指定した場合は,SQL文の実行時間が出力されます。

検索結果を表示する各データ型の文字形式を次の表に示します。

表42‒7 各データ型の文字形式

項番

検索結果のデータ型

データ型の文字形式※1

1

BIGINT

整数データの最も短い定数形式が表示されます。

正の数の場合,""符号は表示されません。負の数の場合,""符号が有効データの直前に表示されます。

2

INTEGER

3

SMALLINT

4

DECIMAL※3

小数点以下は,導出される列の結果の位取り分が表示されます。なお,導出される列の結果の位取りが0で,かつ-dオプションを指定しているときは,小数点は出力されません。

整数部分は最も短い形式で表示されます。

正の数の場合,""符号は表示されません。負の数の場合,""符号が有効データの直前に表示されます。

5

NUMERIC※3

6

DOUBLE PRECISION

指数部は最も短い形式で表示されます。仮数部は17桁固定で表示されます。

正の数の場合,""符号は表示されません。負の数の場合,""符号が有効データの直前に表示されます。

7

FLOAT

8

REAL

9

CHARACTER

各データ型の定数形式からアポストロフィ( ' )を除いた形で表示されます。ただし,表示できない文字(X'00'X'1F')はコロン( : )で表示されます。

10

VARCHAR

11

STRING

12

DATE

日付データの既定の出力表現に従った形式で表示されます。日付データの既定の出力表現については,マニュアルHADB SQLリファレンス既定の文字列表現を参照してください。

13

TIME

時刻データの既定の出力表現に従った形式で表示されます。時刻データの既定の出力表現については,マニュアルHADB SQLリファレンス既定の文字列表現を参照してください。

14

TIMESTAMP

時刻印データの既定の出力表現に従った形式で表示されます。時刻印データの既定の出力表現については,マニュアルHADB SQLリファレンス既定の文字列表現を参照してください。

15

BINARY※4

選択式にBINARYを指定した場合は,次のどちらかの形式で表示されます。

  • 16進形式

  • 2進形式

16

VARBINARY※4

選択式にVARBINARYを指定した場合は,次のどちらかの形式で表示されます。

  • 16進形式

  • 2進形式

17

BOOLEAN

論理データの既定の出力表現に従った形式で表示されます。論理データの既定の出力表現については,マニュアルHADB SQLリファレンス既定の文字列表現を参照してください。

18

UUID

UUIDデータの既定の出力表現に従った形式で表示されます。UUIDデータの既定の出力表現については,マニュアルHADB SQLリファレンス既定の文字列表現を参照してください。

19

ROW※2

選択式にROWを指定した場合は,16進形式で表示されます。

20

ARRAY

配列データは,次の形式で表示されます。

{配列要素1,配列要素2,,配列要素N}

表示規則を次に示します。

  1. 配列要素1配列要素Nの表示形式は,項番1~16で説明している各データ型の表示形式に従います。表示例を次に示します。

    (例)

    • 要素データ型がINTEGER型の場合

      {1,2,3}

    • 要素データ型がVARCHAR型の場合

      {ABC,DEF,GH}

    • 要素データ型がDATE型の場合

      {2020-10-01,2020-11-01,2020-12-01}

  2. 次の条件に該当する配列要素は,二重引用符(")で囲まれて表示されます。※5

    • 要素データ型がCHARACTER型,VARCHAR型,またはSTRING型で,配列要素にコンマ(,)が含まれる場合

    • 要素データ型がCHARACTER型,VARCHAR型,またはSTRING型で,配列要素がNULLという文字列の場合※6

    • 要素データ型がVARCHAR型,STRING型,またはVARBINARY型で,配列要素の長さが0バイトの場合

    表示例を次に示します。

    (例)

    {ABC,"DE,F","NULL","",GH}

  3. 空の配列データの場合は,次のように表示されます。

    {}

最大要素数が多い場合や,ARRAY_AGG集合関数を使用した場合,表示される検索結果が非常に長くなります。その場合,-sオプションを指定して,SELECT文の実行結果を標準出力にCSV形式で出力してください。

注※1

文字形式に変換できない場合は,データを文字形式で表現したときの最大長の数分の疑問符(?)が表示されます。

注※2

選択式にROWを指定した場合はこのデータ型になります。

注※3

DECIMAL型またはNUMERIC型の精度と位取りが同じ場合,先頭に0が付与されます。ただし,-sオプションを指定した場合で,精度と位取りが38の場合は0は付与されません。

注※4

どちらの形式で表示されるかは,adbsqlコマンドの-bオプション,または#SET BINARY_DISP_MODEの指定に従います。ただし,#SET DUMPMODEON(検索結果を16進形式で表示)を指定した場合は,#SET BINARY_DISP_MODEの指定に関係なく,16進形式で表示されます。

注※5

-sオプションを指定した場合,各配列要素は二重引用符(")2個で囲まれて出力されます。ただし,配列要素がナル値の場合は,NULL(二重引用符で囲まれない)と出力されます。

注※6

配列要素がNULLという文字列の場合は"NULL"と表示され,配列要素がナル値の場合はNULLと表示されます。

留意事項

adbsqlコマンド開始時に-sオプションを指定した場合,#SET TABLEMODEは実行できません。