LOAD DATA                      --控制文件标识
INFILE 'T.TXT'                 --要加载的数据所在文件
APPEND INTO TABLE TT           --加载方式 目标表
FIELDS TERMINATED BY X'09'     --字段终止于X'09',是一个制表符(TAB)
OPTIONALLY ENCLOSED BY '"'     --每个字段的定界符
(A,B)                          --定义列对应顺序加载方式有以下选项:
insert,为缺省方式,在数据装载开始时要求表为空
append,在表中追加新记录
replace,删除旧记录,替换成新装载的记录
truncate,同上

解决方案 »

  1.   

    使用REPLACE
    1)
    SQL> SELECT * FROM TEST_LLDR;A            B            C            D
    ------------ ------------ ------------ ------------
    A            B            C            CSQL> 2)LLDER文件内容
    A^B^E^F
    A1^B^E^F
    A1^B^E1^F1
    A2^B^E^F
    3)用REPLACE执行
    4)
    SQL>  SELECT * FROM TEST_LLDR;A            B            C            D
    ------------ ------------ ------------ ------------
    A            B            E            F
    A1           B            E            F
    A2           B            E            FSQL> 
    5)
    SQL*Loader: Release 10.1.0.2.0 - Production on 火 2月 21 10:25:47 2006Copyright (c) 1982, 2004, Oracle.  All rights reserved.制御ファイル:    C:\Documents and Settings\user-yan_pf\デスクトップ\MSTRESERVE_20060105141128\M007Control.txt
    データ・ファイルC:\Documents and Settings\user-yan_pf\デスクトップ\MSTRESERVE_20060105141128\M007Data.txt
      不良ファイル:  C:\Documents and Settings\user-yan_pf\デスクトップ\MSTRESERVE_20060105141128\M007Data.bad
      廃棄ファイル:  指定なし (すべて廃棄できます)ロード数: ALL
    スキップ数: 0
    許容エラー数: 50000
    バインド配列:    64行、最大256000バイト
    継続文字:    指定なし
    使用パス:      従来型表TEST_LLDR、 ロード済 すべての論理レコードから
    この表に対する有効な挿入オプション: REPLACE   Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    A                                  FIRST    *  ^     CHARACTER            
    B                                   NEXT    *  ^     CHARACTER            
    C                                   NEXT    *  ^     CHARACTER            
    D                                   NEXT    *  ^     CHARACTER            レコード3: 拒否されました。- 表TEST_LLDRでエラーが発生しました。
    ORA-00001: unique constraint (APPLE.TEST_LLDER_KEY) violated
    表TEST_LLDR:
      3行のロードに成功しました。
      1行はデータ・エラーのためロードされませんでした。
      0行はWHEN句のエラーのためロードされませんでした。
      0行はすべてのフィールドがNULLのためロードされませんでした。バインド配列に割り当てられた領域:    66048バイト(64行)
    読取りバッファのバイト数:  1048576スキップされた論理レコードの合計:           0
    読み込まれた論理レコードの合計:             4
    拒否された論理レコードの合計:               1
    廃棄された論理レコードの合計:        0実行開始火 2月  21 10:25:47 2006
    実行終了火 2月  21 10:25:47 2006実行時間:        00: 00: 00.20
    CPUタイム :        00: 00: 00.03
      

  2.   

    总之,如果你不想出现重复数据,就用 replace
    如果只是简单添加数据,就用 appendinsert,为缺省方式,在数据装载开始时要求表为空,这个限制比较严格,一般不用
      

  3.   

    REPLACE的陷阱
    REPLACE的实际操作是先将数据库中数据完全删除掉,然后再将数据导入数据库中。
    惭愧!!!!!!!!!!