将excel数据 导入到orace

来源:互联网 发布:java继承多个父类 编辑:程序博客网 时间:2024/05/08 16:14

数据量很大,用pl/sql developer 粘贴内存不够(>100000条数据),本身就推荐使用SQL*LOAD :

 

1。将excle数据XLS格式 另存为: CSV格式,注意,这里是另存为,不要直接改后缀名,否则,数据格式不是以逗号形式隔开,就是保持类型那里选 “CSV(逗号分隔符) (*.CSV)”。

2。编写input.ctl文件:

内容如下:
load data     ---控制文件标识
infile 'd:/测试.csv'    ---数据源
append into table test  ---向TEST表追加数据  
fields terminated by ','   ---字段终止于 逗号(csv 格式字段默认分隔为逗号),制表符 X'09',是一个制表符(TAB)

----如果字段数据有"",可加上optionally enclosed  by   '"'
trailing nullcols              ---读取所有的记录,包括空格(一般去掉,会插入垃圾数据)
(name,age)                   ---表中字段

将上述内容保存至d:/(其它盘也行),命名为input.ctl

 

附加:insert,为缺省方式,在数据装载开始时要求表为空
           replace,删除旧记录,替换成新装载的记录
          truncate,同上

 

3、在DOS窗口下使用SQL*Loader命令实现数据的输入。命令如下:

C:/>sqlldr userid=system/password@SID control=d:/input.ctl

(解释:上述命令中的SID是指全局数据库名(例如:我的全局数据库名定义为ORCL,则我要输入的命令为:

C:/>sqlldr userid=system/password@orcl control=d:/input.ctl)。若不输入全局数据库名,运行时可能会出现协议适配器错误。

在d:/会默认出现日志文件名为:input.log
      默认坏记录文件为:input.bad

 

4、连接到SQL*Plus或者PL/SQL中,查询表device_user_model看是否成功输入数据