Delimiter オプション

フィールドの区切り文字を指定します。

列の区切り文字は常にLatin-9エンコーディングで表現される。 したがって、区切り記号は常に1バイトである。

技術的には、列の区切り文字には以下の範囲内の文字や値を使用できる:
hex     dec     octal
        ---     ---     -----
        x01     001     <001>
   to   xFF     255     <377>
列の区切り文字については、以下の制限と制約を守ってください:
  • <NUL> にはできない。

    例えば、バイナリ '<000>

  • 数字ではありえない。

    例えば、0から9まで。

  • 以下の値のいずれかとして使用される区切り文字とは一致しない:
    • レコードの区切り文字

      一般的に、'<NL>.

    • 日付の区切り文字
    • デシマルデリミタ
    • 時間区切り記号
ヒント:
NCHARまたはNVARCHARカラムにUTF8データをロードする場合は、デリミタを以下の範囲内に制限してください。
hex     dec     octal
        ---     ---     -----
        x01     001     <001>
   to   x7F     127     <177>

デフォルトはパイプ文字 ('|') です。 ただし、nzload コマンドの場合は例外です。 このコマンドの場合、デフォルトは '&#xa5;t' (タブ) です。 固定長形式の場合、このオプションはサポートされていません。

システムは、行内の連続するフィールドを特定することによって、入力行を処理します。 隣接するフィールドが 1 文字フィールド区切り文字によって区切られます。 フィールド間にフィールド区切り文字がないとエラーになります。 行の最後のフィールドに続くフィールド区切り文字を使うこともできるが、必須ではない。

以下のタイプの区切り文字を指定できます。
数値
0xNN または NN (NN は 16 進数または 10 進数のいずれかの数値)。
制御文字
^A から ^Z まで (下位 5 ビット) および ^a から ^z まで (下位 5 ビット)。
シンボル
&#xa5;b (バックスペース; ASCII 値 8)、&#xa5;t (水平タブ; ASCII 値 9)、&#xa5;n (ライン・フィード; ASCII 値 10)、&#xa5;f (フォーム・フィード; ASCII 値 12)、&#xa5;r (キャリッジ・リターン; ASCII 値 13)、&#xa5;&#xa5; (円記号)、&#xa5;' (引用符)、&#xa5;" (二重引用符)。
リテラル
任意の文字、例えばc(制御文字でない文字 c)。

引用符で囲んだ値(たとえば「Delimiter '|')または引用符で囲んでいない10進数(たとえば「Delimiter 124)を使用することで、7ビットASCII範囲の文字を指定できます。127より大きいバイト値を指定するには、10進数を使用します。

7 ビット ASCII 文字以外の文字を区切り文字として使用するには、この文字を 10 進数または 16 進数として指定します。 文字リテラルを使用すると、エンコーディング変換でエラーが発生することがあるので、 これは指定しないでください。 例えば、16 進値 0xe9 (Latin9 の é) を区切り文字として使用するには、Delimiter 0xe9 を使用します。 Delimiter 'é' は使用しないでください。

システムは英数字も受け入れますが、あいまいさを避けるため、フィールド中のデータと競合する区切り文字は選択しないでください。 DateDelim、'TimeDelim、'DateTimeDelim、または'MeridianDelimオプションで、オプションごとに異なる区切り文字を選択する。も使用する場合。

nzload コマンドを使用する場合、コマンド行にエスケープ文字 (&#xa5;b など) を入力することができます。 nzload コマンドの場合のデフォルトは、'&#xa5;t' (タブ) です。 CREATE EXTERNAL TABLE コマンドを使用する場合、指定できる特殊文字は &#xa5;t または "&#xa5;t" のみです。