ORACLE sqlload 加载外部数据方法 老猫

sqlldr是cmd下的命令,用来将文本格式数据导入到数据库中。
命令格式:
sqlldr username/password@sid control=*.ctl

*.ctl格式为:
load
infile "d://test.txt"    外部数据文件
infile "d://test1.txt"   可指定多个数据文件
append into table test   向表中追加数据
fields terminated by ","    外部文件的数据以“,”分隔
trailing nullcols        表中的字段没有对应的值时填充空值
(
id integer external,    integer external 表示插入的数据是string,如果只保留integer,表示插入的数据是二进制
name "upper(:name)",     将插入的值转换为大写
con ":id||:name",        表中CON列的值是ID和NAME的组合值
dt date"yyyy-mm-dd"      插入日期型数据
)


在append的位置还可以用以下列表中的一个值:
insert   向表中插入值,但要求表开始时为空
replace delete表中的数据,然后插入新值
append   向表中追加数据
truncate trunctate表,然后插入新值


例:
C:\Users\wzj>sqlldr scott/tiger control=d:/dept.ctl

dept.ctl的内容如下:

load
infile "d://test.txt"   
append into table tt
fields terminated by ","  
trailing nullcols      
(
id integer external,  
name "upper(:name)",    
con ":id||:name",      
dt date"yyyy-mm-dd"     
)

test.txt的数据如下
1,a,,2007-07-8
2,b,,2008-07-8
3,c,,2009-07-8

SQL> desc tt ;
名称                                                  是否为空? 类型
--------------------------------------------- -------- -------------
ID                                               VARCHAR2(10)
NAME                                          VARCHAR2(20)
CON                                            VARCHAR2(30)
DT                                               DATE

 

建立一个bat 文件

sqlldr 用户名/密码@DBNAME control=xx.ctl

原文地址:https://www.cnblogs.com/oldcat/p/2156320.html