レイアウト定義
レイアウトとは、順序付きのゾーン (フィールド) 定義の集合です。 固定長形式では、レイアウトを指定する必要があります。 各ゾーン定義は相互排他的な (重複しない) 節で構成されています。
これらの節は、次の順序でなければなりません (ただし、一部は省略可能であり、空でもかまいません)。
- 使用タイプ
- 通常のゾーン (データ・ゾーン) なのか、それとも充てん文字ゾーンなのかを示します。 データ・ゾーンの場合、この値は省略します。 充てん文字ゾーンの場合は、バイト数のみ指定できます。 他の使用タイプもありますが、固定長形式データには使用しません。
- 名前
- ゾーンの名前。 ゾーン名の重複は禁止されています。 この定義は、現在使用されていませんが、一般的にはフィールドを識別するために指定します。
- タイプ
- ゾーンの型を定義します。 指定しない場合、対応する表列の型がデフォルトの型として使用されます。 充てん文字ゾーンに、デフォルトの型はありません。 有効な値は、以下のとおりです。
- 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 ゾーンの場合に有効 (外部表オプション DateStyle、DateDelim、TimeStyle、および 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 バイト 該当なし