レイアウト定義

レイアウトとは、順序付きのゾーン (フィールド) 定義の集合です。 固定長形式では、レイアウトを指定する必要があります。 各ゾーン定義は相互排他的な (重複しない) 節で構成されています。

これらの節は、次の順序でなければなりません (ただし、一部は省略可能であり、空でもかまいません)。
使用タイプ
通常のゾーン (データ・ゾーン) なのか、それとも充てん文字ゾーンなのかを示します。 データ・ゾーンの場合、この値は省略します。 充てん文字ゾーンの場合は、バイト数のみ指定できます。 他の使用タイプもありますが、固定長形式データには使用しません。
名前
ゾーンの名前。 ゾーン名の重複は禁止されています。 この定義は、現在使用されていませんが、一般的にはフィールドを識別するために指定します。
タイプ
ゾーンの型を定義します。 指定しない場合、対応する表列の型がデフォルトの型として使用されます。 充てん文字ゾーンに、デフォルトの型はありません。 有効な値は、以下のとおりです。
  • CHAR
  • VARCHAR
  • 各国語文字 (NCHAR) 型
  • 各国語可変長文字 (NVARCHAR) 型
  • INT1
  • INT2
  • INT4
  • INT8
  • INT
  • UINT1
  • UINT2
  • UINT4
  • UINT8
  • UINT
  • フローティング
  • DOUBLE
  • 数値
  • BOOL
  • 日付
  • 時刻
  • TIMESTAMP
  • TIMETZ
スタイル
ゾーンの表記を定義します。 この節はオプションです。 デフォルトの表記は、ゾーンの型および Format オプションに基づいて決まります。 それ以外のスタイルは、対応する非テキストのゾーン・タイプにのみ有効です。 有効な値は、以下のとおりです。
INTERNAL
テキストのゾーン (char、varchar、nchar、および nvarchar) の場合のみ有効。
DECIMAL
整数ゾーン・タイプと数値ゾーン・タイプに有効。
DECIMALDELIM
数値、浮動小数点、倍精度 (double)、および時刻スタイル (time、timetz、および timestamp) のゾーン型の場合に有効。
フローティング
浮動小数点または倍精度のゾーン・タイプに有効。
SCIENTIFIC
浮動小数点または倍精度のゾーン・タイプに有効。
YMD<'date-delim'>(日付区切り記号
日付ゾーンの場合に有効 (外部表オプション DateStyle および DateDelim でサポートされる他の日付スタイルを含む)。
12Hour <'タイム区切り'>の場合
タイムゾーンの場合に有効 (外部表オプション TimeStyle および TimeDelim でサポートされる他の時刻スタイルを含む)。
24Hour <'時間区切り'>表示
タイムゾーンの場合に有効 (外部表オプション TimeStyle および TimeDelim でサポートされる他の時刻スタイルを含む)。
YMD<日付区切り> 24Hour <時間区切り
タイムスタンプおよび timetz ゾーンの場合に有効 (外部表オプション DateStyleDateDelimTimeStyle、および TimeDelim でサポートされる日付および時刻のスタイルの他の組み合わせを含む)。
TRUE_FALSE、Y_N、1_0
ブール・ゾーンの場合に有効 (外部表オプション BoolStyle でサポートされる他のブール・スタイルを含む)。 スタイルは形式に合致していなければなりません。
長さ
バイト数。
Nullif
ゾーン NULL 属性の定義。 固定形式ファイルの場合、この節は、フィールド内に出現した場合にそのフィールドが NULL であることを示す既知のデータ・パターンを指定します。 長さは列幅以下であり、最大長は 39 バイトです。
以下の例で NULL について詳しく示しています。
表 1. レイアウトの例
使用タイプ 名前 タイプ スタイル 長さ Nullif
該当なし f1 int4 DECIMAL 10 バイト Nullif @ = 0
該当なし f2 日付 YMD 10 バイト Nullif &= '2000-10-10'
該当なし f3 char(20) INTERNAL 10 文字 Nullif && ''
充てん文字 f4 char(10) 該当なし 10 バイト 該当なし