このデータは、可変長のダブルバイト・キャラクタ・セット(DBCS)です。lengthサブフィールドおよびダブルバイト文字の文字列で構成されます。ダブルバイト・キャラクタ・セットは、Oracle Databaseではサポートされていないため、SQL*Loaderを使用してシングルバイトとして読み込み、RAW
データとしてロードします。RAW
データ型と同様、VARGRAPHIC
フィールドは変更されずに指定の列に格納されます。
注意:
lengthサブフィールドのサイズには、システム上のSQL*LoaderのSMALLINT
データ型の長さ(C言語のSHORT INT
型に相当する長さ)が取られます。詳細は、「SMALLINT」を参照してください。
VARGRAPHIC
データは、SHORT INT
の長さが同じバイト数のシステム間でのみ、正しい結果でロードできます。バイト順序がシステム間で異なる場合は、適切な方法でlengthサブフィールドのバイト順序を指定します。詳細は、「バイト順序」を参照してください。
VARGRAPHIC
データ型の構文は次のとおりです。
現行のフィールドの長さは、先頭の2バイトで示されます。VARGRAPHIC
データ型に指定する最大長には、lengthサブフィールドの長さは含まれません。この最大長には、グラフィック(ダブルバイト)文字の文字数を指定します。フィールドのバイト単位の最大長を決定するには、このmaximum_lengthの値を2倍します。
フィールド最大長のデフォルトは、グラフィック文字で2KB、つまり4KB(2×2KB)です。必要なメモリーを最小限にするには、このような可変フィールドに対して、できるだけ最大長を指定します。
VARGRAPHIC
文の前に(pos_spec
を使用して)位置指定が指定されている場合、グラフィック文字の1文字目ではなく、lengthサブフィールドの位置がわかります。pos_spec
(start:end
)を指定すると、endの位置によってそのフィールドの最大長が決まります。ここでのstart
やend
は、そのファイルにおける1バイト単位の文字位置を示します。したがって、(end+1)
からstart
の値を引くと、フィールドの実際のバイト長が求められます。最大長を指定した場合は、その最大長の方が、位置指定から計算された最大長より優先されます。
VARGRAPHIC
フィールドのフィールド長全体が、読み込まれる前に論理レコードの終わりで切り捨てられた場合、警告が出力されます。VARGRAPHIC
型のフィールド長は、そのフィールドの各入力データ中に埋め込まれているため、そのフィールド長の方が正確であるとみなされます。
VARGRAPHIC
データに対してはデリミタを使用できません。