oracle sqlloader 使用笔记

sqlloader 使用笔记

命令: sqlldr userid=username/pwd control=file log=logfile

load data --语法关键字
infile 'filename' -- 要导入数据的数据文件,默认格式为.dat,如果要从多个文件导入,则在依次增加infile就可以了
infile 'filename' -- 以此类推
inifile * -- 要导入的数据就在control控制文件里 由begindata进行引导数据起始点
concatenate 数字 -- 把几行记录当成一行数据处理, 只能在使用begindata时使用
continueif   this(1:1)   =   '- '  //   找每行的开始是否有连接字符   -   有就把下一行连接为一行
badfile 'badfilename' --坏文件地址
discardfile 'discardfilename' --描述文件地址

into table 表名 --要将数据导入那个表
-- 装载表数据的方式
append --在原有数据基础上添加
replace -- 删除原有表的数据,添加新的数据
insert --默认值,在装载空表时使用,如果表中有数据,sqlloader会停止报错,提示表必须为空
truncate -- 会用truncate先删除数据,然后在装载新数据
fields terminated by '数据分隔符' optionally encolsed by '每个数据是以什么分隔符界定的'
-- "dfdf","dfdfdf" terminated by ',' optionally encolsed by '"' 表列对应的数据是以逗号“,”分隔的,每个值是用双引号界定的,双引号内如果有逗会做为值插入到表中
       terminated by X'09' -- 以制表符分隔,即TAB键
       terminated by writespace -- 以空白字符为分隔符
trailing nullcols -- 如果装载的数据为空,则以NULL插入表
(列1 [position(1:2)] [filter] [函数,字段做为函数入参格式:"函数名(:列名)"->name "upper(:name)"] [数据类型] [数据格式,比如日期'yyyy-mm-dd'],列2 .., ...) --如果加filter关键字,则该列数据被忽略

//   当没声明FIELDS   TERMINATED   BY   ', '用位置告诉字段装载数据  
//   (  
//   col_1   position(1:2),  
//   col_2   position(3:10),  
//   col_3   position(*:16),   //   这个字段的开始位置在前一字段的结束位置  
//   col_4   position(1:16),  
//   col_5   position(3:10)   char(8)   //   指定字段的类型  
//   ) 
begindata
数据
//注意begindata后的数值前面不能有空格

你可能感兴趣的:(oracle)