当前位置:数据库 > Oracle >>

oracle sqlloader使用笔记

oracle 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后的数值前面不能有空格
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,