Oracle的SQLLDR是用来将文本文件中的记录装载到数据库中的工具,
其并行(Parallel),直接(Direct)的装载模式是目前所知最快的方式.
不过用于指定文本格式的控制文件有点难于写, 我在写时也经常需要查阅文档.
为了方便我还是在这儿写一个例子吧, 下面是样表的结构:

SQL> create table test(
  2    num_col number(10),
  3    char_col char(10),
  4    var_col  varchar2(10),
  5    date_col date,
  6    blob_col blob,
  7    clob_col clob,
  8    raw_col  raw(20)
  9  );

Table Created.

    在这个例子中有CLOB/BLOB列, 因此直接模式不能用,
还需要将ROWS参数设为1, 下面是SQLLDR用的控制文件:


– Generated by AUL/MyDUL, for table hr.test

OPTIONS(DIRECT=TRUE,READSIZE=4194304,ERRORS=-1,SKIP=1,ROWS=50000)
LOAD DATA
INFILE ‘hr_test.txt’ “STR X’0d0a’”
INTO TABLE TEST
FIELDS TERMINATED BY X’7c’ TRAILING NULLCOLS
(
  NUM_COL    CHAR ,
  CHAR_COL    CHAR(10) ,
  VAR_COL    CHAR(10) ,
  DATE_COL  DATE “YYYY-MM-DD HH24:MI:SS” ,
  LOBF_00005  FILLER  CHAR(32),
  BLOB_COL    LOBFILE(LOBF_00005) TERMINATED BY EOF ,
  LOBF_00006  FILLER  CHAR(32),
  CLOB_COL    LOBFILE(LOBF_00006) TERMINATED BY EOF ,
  RAW_COL    CHAR
)

    当然我给的参数肯定不是最好的, 请你试了后告诉我.