轉載:利用SQL*Loader将 Excel 数据导出到数据库中
系统环境:
k"T/]
wl2S0e]GA01、操作系统:Windows 2003 Server R2,机器内存1024MITPUB个人空间7ps:{!F#^P
2、数据库: Oracle 10g (10.2.0.2) for NT 企业版ITPUB个人空间5k"`'n]a'm&[ C/[!O
3、安装路径:D:\ORACLEITPUB个人空间%k%c(jqa/S
================================================
实现步骤:
ms`8w[ Gfs0
e3{*?ze
]0
'R9Cq c1w;a'M#j6l0
A.@+\hw0
j5a+h__0
IBRdkU)c0
GV$v~9S/oEw_ Q0
8^6v kR|2B't*V0
JC IX0SQ0
7g/P*qE*xoF0另附sqlldr的用法(出处不详):
sql load的一点小总结
LG:]df"m6w8m0
sqlldr userid=lgone/tiger control=a.ctl
LOAD DATA
v%pr
LT'Y9R0INFILE 't.dat' // 要导入的文件
6t1{(Yoy.R2_Y0// INFILE 'tt.date' // 导入多个文件
// INFILE * // 要导入的内容就在control文件里下面的BEGINDATA后面就是导入的内容
gC-m ]J;u"A)TT0INTO TABLE table_name // 指定装入的表
pJ-k8e0x"qH5_-xp(R0BADFILE 'c:\bad.txt' // 指定坏文件地址
F(Mv%^:M(_"S.`0************* 以下是4种装入表的方式
8m;E:B4[ [t0APPEND // 原先的表有数据就加在后面
m3i0Z N_
MM0// INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值
// REPLACE // 原先的表有数据原先的数据会全部删除
9d0Pe-I6Ta8Z8s0// TRUNCATE // 指定的内容和replace的相同会用truncate语句删除现存数据
l
cw0RD-X F0
)m1~^PC,Q0************* 指定的TERMINATED可以在表的开头也可在表的内部字段部分
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
// 装载这种数据: 10,lg,"""lg""","lg,lg"
// 在表中结果: 10 lg "lg" lg,lg
// TERMINATED BY X '09' // 以十六进制格式 '09' 表示的
,O!lP/l+fb+sDx)TX_0// TERMINATED BY WRITESPACE // 装载这种数据: 10 lg lg
nX
VPzG#j
r0TRAILING NULLCOLS ************* 表的字段没有对应的值时允许为空
Gd{[EtT0************* 下面是表的字段
(
fI%Ne#nXU6n0col_1 , col_2 ,col_filler FILLER // FILLER 关键字此列的数值不会被装载
`;{7a(O.{7y0// 如: lg,lg,not 结果 lg lg
-F#`PKtQh!L8L@e0)
// 当没声明FIELDS TERMINATED BY ',' 时
// (
5ADkr(X8lh0// col_1 [interger external] TERMINATED BY ',' ,
E6\8V!I
V0// col_2 [date "dd-mon-yyy"] TERMINATED BY ',' ,
(A#o5@-_}.N0// col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg'
%x3x-j `(k fv0// )
// 当没声明FIELDS TERMINATED BY ','用位置告诉字段装载数据
// (
// col_1 position(1:2),
// col_2 position(3:10),
:K/uGC'G,q9v0// col_3 position(*:16), // 这个字段的开始位置在前一字段的结束位置
// col_4 position(1:16),
?w@4\ p']FRV0// col_5 position(3:10) char(8) // 指定字段的类型
// )
Q!^T4S@*hK0BEGINDATA // 对应开始的 INFILE * 要导入的内容就在control文件里
10,Sql,what
20,lg,show
M0}0r0h"pNW4G"q0=====================================================================================
//////////// 注意begindata后的数值前面不能有空格
hA*P0~t0
1 ***** 普通装载
LOAD DATA
INFILE *
j4Zc+p,yQ0INTO TABLE DEPT
REPLACE
;eT I1V~:D m?0FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
p4id/m;K-F#j I0(DEPTNO,
1xZ;s9vEVF0DNAME,
9D^E!m c\1N0LOC
)
`kw/xqpX3l0BEGINDATA
10,Sales,"""USA"""
20,Accounting,"Virginia,USA"
30,Consulting,Virginia
40,Finance,Virginia
\
l(UH/o.m6aJ2{050,"Finance","",Virginia // loc 列将为空
60,"Finance",,Virginia // loc 列将为空
bQCw[C7X0
'dE4yU'p-B
j^02 ***** FIELDS TERMINATED BY WHITESPACE 和 FIELDS TERMINATED BY x'09' 的情况
LOAD DATA
INFILE *
.q[A)yX+v [4Y*M0INTO TABLE DEPT
k:ts |HzZz0REPLACE
3E\6_{7Vrn(T2dg0FIELDS TERMINATED BY WHITESPACE
"Qu,]{/D
a#\7W0-- FIELDS TERMINATED BY x'09'
0Gd^(I~0(DEPTNO,
DNAME,
LOC
)
BEGINDATA