VARCHARデータ型には、文字データが後に続くバイナリ・カウント・フィールドが含まれます。バイナリ・カウント・フィールドの値は、フィールドのバイト数または文字数のいずれかです。数値が、文字数とバイト数のどちらで解釈されるかを指定する方法の詳細は、「STRING SIZES ARE IN」を参照してください。
VARRAWデータ型には、バイナリ・データが後に続くバイナリ・カウント・フィールドが含まれます。バイナリ・カウント・フィールドの値は、バイナリ・データのバイト数です。VARRAWフィールドのデータは、DATA IS…ENDIAN句の影響を受けません。
ACCESS PARAMETERS句の中のVARIABLE 2句は、長さを含むバイナリ・フィールドのサイズを規定します。
オプションのlength_of_lengthフィールドは、カウント・フィールドのバイト数です。VARCHARに対するlength_of_lengthの有効な値は、1、2、4および8です。length_of_lengthを指定しない場合、値に2が使用されます。カウント・フィールドは、DATA IS…ENDIAN句で指定されたとおりの同じエンディアンを持ちます。
max_lenフィールドを使用して、データ・ファイルのフィールドのインスタンスの最大サイズを指定します。VARRAWフィールドでは、max_lenはバイト数です。VARCHARフィールドでは、max_lenは、STRING SIZES ARE IN句の設定に応じて、文字数またはバイト数のいずれかになります。
次に、VARCHARおよびVARRAWの使用例を示します。例の後に、データ・ファイルinfo.datの内容を示します。
CREATE TABLE emp_load
(first_name CHAR(15),
last_name CHAR(20),
resume CHAR(2000),
picture RAW(2000))
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_tab_dir
ACCESS PARAMETERS
(RECORDS
VARIABLE 2
DATA IS BIG ENDIAN
CHARACTERSET US7ASCII
FIELDS (first_name VARCHAR(2,12),
last_name VARCHAR(2,20),
resume VARCHAR(4,10000),
picture VARRAW(4,100000)))
LOCATION ('info.dat'));
info.datデータ・ファイルの内容
この例で使用するデータ・ファイルの内容は次のとおりです。
0005Alvin0008Tolliver0000001DAlvin Tolliver's Resume etc. 0000001013f4690a30bc29d7e40023ab4599ffff
わかりやすくするため、カウント・バイトのバイナリ値およびRAWデータの値は、1バイナリ・バイトをイタリック体の2文字で表示していることに注意してください。実際のデータ・ファイルでは、ASCII形式ではなくバイナリ形式の値になります。したがって、この例をカット・アンド・ペーストで使用すると、エラーが返されます。