Oracle的txt数据导入可采用Oracle的Load方法,先编写ctl文档,再使用sqlldr命令进行数据导入
一、 ctl文档解析
load data
infile 'C:\winssage_deploy\ccp\ch_inf_subscriber\ch_rec_substracnt.txt'
append into table CH_REC_SUBSTRACNT
fields terminated by "|"
(REGION,IMEI,MAIN_SERVNUMBER1,MAIN_SERVNUMBER1_ARPU,MAIN_SERVNUMBER1_4GFLOW,MAIN_SERVNUMBER1_TOTALFLOW, MAIN_SERVNUMBER1_23GFLOW,MAIN_SERVNUMBER2,MAIN_SERVNUMBER2_ARPU,MAIN_SERVNUMBER2_4GFLOW,MAIN_SERVNUMBER2_TOTALFLOW,MAIN_SERVNUMBER2_23GFLOW,RECMONTH,LOADTIME DATE 'yyyy-mm-dd HH24:mi:ss')
infile 指数据源文件 这里我们省略了默认的 discardfile result.dsc badfile result.bad
into table XX 默认是INSERT,也可以 append into table XX ; APPEND为追加方式,或REPLACE
terminated by ',' 指用逗号分隔 ; terminated by whitespace 结尾以空白分隔
CHARACTERSET AL32UTF8 指txt文档的编码
括号里txt数据的各列对应的数据库字段
采用第一行作为字段定义的设置还不知道
二、sqlldr命令
sqlldr userid='user/password' control='C:\winssage_deploy\ccp\ch_inf_subscriber\ch_inf_subscriber.ctl' log='C:\winssage_deploy\ccp\ch_inf_subscriber\log.log'
userid -- Oracle 的 username/password[@servicename]
control -- 控制文件,可能包含表的数据
log -- 记录导入时的日志文件,默认为 控制文件(去除扩展名).log
bad -- 坏数据文件,默认为 控制文件(去除扩展名).bad
data -- 数据文件,一般在控制文件中指定。用参数控制文件中不指定数据文件更适于自动操作
errors -- 允许的错误记录数,可以用他来控制一条记录都不能错
rows -- 多少条记录提交一次,默认为 64
skip -- 跳过的行数,比如导出的数据文件前面几行是表头或其他描述