SQL> DESC TEST;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID CHAR(1)
COL1 VARCHAR2(4)
COL2 VARCHAR2(4)
ID,COL1,COL2
1,A,1
2,B,2
3,C,3
4,D,4
5,F,5
数据文件中的这3个列的值对应表的列。
当ID=5的时候, 第一列导入ID,第二列导入COL1,第三列导入COL2
当ID<>5的时候,第一列导入ID,第二列导入COL2,第三列导入COL1
实现如下:
SQL> HOST TYPE DATA.CTL
LOAD DATA
INFILE 'c:\data.txt'
APPEND INTO TABLE TEST
WHEN ID='5'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(ID ,COL1,COL2)
INTO TABLE TEST
WHEN ID<>'5'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(ID POSITION(1),COL2,COL1) --这个地方必须带上POSITION(1),否则只能导入到第一个表中
SQL> HOST TYPE DATA.TXT
1,A,1
2,B,2
3,C,3
4,D,4
5,F,5
SQL> host sqlldr test/test control=c:\data.ctl
SQL*Loader: Release 10.2.0.1.0 - Production on 星期二 8月 23 16:30:36 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点 - 逻辑记录计数 4
达到提交点 - 逻辑记录计数 5
SQL> SELECT * FROM TEST;
I COL1 COL2
- ---- ----
1 1 A
2 2 B
3 3 C
4 4 D
5 F 5
SQL>
阅读(1600) | 评论(0) | 转发(0) |