1、在本地创建一个Access数据库,将Excel数据先导入到Access。可直接导入点击鼠标右键,选择导入,文件类型选择要导入的Excel文件,也可通过创建宏用TransferSpreadsheet函数实现。
2、在本地创建ODBC,链接oracle数据库。将oracle中需要导入数据的表以链接表的方式在本地Access中创建(千万不要使用导入表)。
3、在Access数据库中创建插入查询将导入好的Excel数据导入到oracle中。
方法二:
先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl
用sqlldr进行导入!
insert.ctl内容如下:
load data --1、控制文件标识
infile 'test.csv' --2、要输入的数据文件名为test.csv
append into table table_name --3、向表table_name中追加记录
fields terminated by ',' --4、字段终止于',',是一个逗号
(field1,
field2,
field3,
...
fieldn)-----定义列
注意括号中field排列顺序要与csv文件中相对应
然后就可以执行如下命令:
sqlldr user/password control=insert.ctl
例子:
首先我先建了一个表
SQL> create table biao
2 (username varchar2(10),
3 date1 varchar2(20),
4 date2 varchar2(20),
5 date3 varchar2(20)
6 );
然后写了6.txt文件,存在c:/目录下
内容:
姓 名 工作时间 入党时间 增加时间
200109 20040919 200409
200109 20050331 20050331
200109 20050331 20050331
200109 20050331 20050331
200109 20050331 20050331
200109 20041220 20041220
写得ctl文件如下,存在c:/目录下
LOAD DATA
INFILE '6.txt'
INTO TABLE BIAO
fields terminated by x'0d' trailing nullcols
(
USERNAME,
DATE1,
DATE2,
DATE3
)
再 命令提示符中写的
sqlldr uerid=system/lllll control =input.txt
ctl文件为(ctl的文件名必须为表名):
Load data
infile 'excelName.txt'
append into table tableName(你的表名)
fields terminated by X'09'
(A,B)
注意:
你先将你的文本文件的数据放入到excel中,然后将它已“制表符分隔”的形式保存
excelName.txt就为你报保存的文本文件
再将ctl、txt文件放入C盘根目录
最后在dos下输入:sqlldr 用户名/用户密码@sid control=tableName
要解决的问题有:linux查找当前目录绝对路径及在当前目录下如何运行Dos命令.