以前一直都是用excel---access---oracle的方式导数据,今天导数据的时候发现有些格式的数据导到access里面不显示,到数据库里面也是,改掉数据格式也不对;最后想到了用sql loader试一下,结果OK,现在把这次用sql loader导数据的步骤写出来。
sql loader使用需要三个文件:
调用文件:可以是.sql或.bat文件
控制文件:定义要导入的表及字段分隔符等
数据文件:要导入的数据文件,可以是excel和txt文件等
步骤如下:
条件是先要在数据库中创建原始表,才能将数据导到表里面。
1、首先创建一个控制文件,后缀为.ctl,此例是load_backup.ctl,以下为控制文件的内容(要导入的表是CNC_TEMPLATE_TOOL_INFO,分隔符为,)
load data
append
into table CNC_TEMPLATE_TOOL_INFO
fields terminated by ","
( SPECIAL, TOOL_TYPE, MATERIAL,
PARAMETER_H, TOOL_LIMIT, PARAMETER_G,
PARAMETER_F, PARAMETER_S, PARAMETER_Q,
PARAMETER_R, ANGLE_DEPTH, HOLE_TYPE
)
2、将数据文件即excel另存为.csv文件(注意excel每一行的最后一列如果为空的话,需填入字符,要不然待会导入时最后一列为空的行或被sql loader拒绝)
3、创建调用文件(有点像exp,imp),我是直接在命令行窗口中执行的:
内容如下:
sqlldr amy/amy@amy control= data= direct=y rows=1000000
4、执行完成后看有没有产生.bad文件,如果有就表示有一部分记录被sql loader拒绝,我们可以打开看看这部分数据有什么特征,然后改正重导就OK了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9902302/viewspace-663304/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9902302/viewspace-663304/