Oracle には文字列の長さをバイト数で数える(バイトセマンティクス)か文字数で数えるか(文字長セマンティクス)を切り替える機能があります。 この区別をはっきりつけておかないと、文字列の長さに関わるエラーに悩まされるわけですが、それは SQL*Loader でもやはり同じです。 以下のような文字長セマンティクスの列を含んだテーブルに対し、 CREATE TABLE TEST ( A NUMBER(3,0), B VARCHAR2(10) C VARCHAR2(10 CHAR) D NVARCHAR2(10) ) 以下のような制御ファイルと TEST.ctl LOAD DATA CHARACTERSET JA16SJIS INFILE 'TEST.CSV' BADFILE 'TEST.BAD' DISCARDFILE 'TEST.DSC' REPLACE INTO TABLE TEST F