[test~/test123]$ cat m-periodlanage.ctl
LOAD DATA INFILE '/xxx/test123/4444.txt' INTO TABLE t_d_win_prize append FIELDS TERMINATED BY ',' TRAILING NULLCOLS
(msisdn,username,awardname,awardtime,awardtype,giveflag,id "periodLanage_seq.NEXTVAL")
其中 LOAD DATA INFILE '/xxxx/test123/4444.txt' 为需要导入的文件路径
INTO TABLE t_d_win_prize 为需要导入的的表名称
append 为在表中追加新记录 。
1) insert --为缺省方式,在数据装载开始时要求表为空
2) append --在表中追加新记录
3) replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录
FIELDS TERMINATED BY ',' ---为以‘,’为文件的分割符进行数据分割
TRAILING NULLCOLS ---为没有赋值的列可以为空
(msisdn,username,id "periodLanage_seq.NEXTVAL") ---和文件中需要新增加的列一一对应
其实id "periodLanage_seq.NEXTVAL" 表示id 这列使用自增序列。 没有声明的列为空
命令执行:
sqlldruserid=username/password@xxx control=m-periodlanage.ctl log=m-periodlanage.log errors=1000
为了防止插入到数据出现乱码,需要设置编码格式:
export LANG=zh_CN.GB2312 ---LANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效,如date;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK ---NLS_LANG是针对oracle语言、地区、字符集的设置,对oracle中的工具有效。