一般我们都喜欢用Excel表格保存各种常用数据,但如果要做信息系统,用Excel存数据是不太现实的,会带来很多操作上的不便。这样有必要将 Excel导入到各种常用的数据库软件中,以供开发使用。这些常用的软件有小型数据库系统Access、大中型数据库系统SQL Server以及大型数据库系统Oracle等。
那么怎么方便地将Excel数据导入到这些数据库中呢?
一、Access和SQL Server本身作为微软的产品,都提供了对包括Excel数据在内的直接导入功能。
二、而Oracle则需要多费点周折,这里把本人用的方法和在网上搜到的方法一并介绍如下。
第一步、将Excel数据导入到Access,这里需要说明的是,由于Excel对数据格式的限制相对数据库软件较松,所以在导入数据的过程中可能发生某些单元格的数据导入有误。Access会生成一个勘误表,可以针对这个表来查看是哪能些数据产生了导入问题。
第二步、建立ODBC数据源,通过控制面板-》数据源(ODBC),建立系统DSN,在建立DSN的时候要选择数据库驱动程序,请选对应的驱动,我的机器是 Oracle in OraHome92,然后会弹出一个对话框,来做进一步配置,在TNS Service Name中会列出本机上可用的"本地Net服务名",请选择对应的服务名后输入要访问数据库用户(在导入时可以修改)和给这个ODBC数据源取个名字就可以了。
第三步、通过Access导出到Oracle.在导出的"保存类型"下拉框中选"ODBC数据库()",就会弹出ODBC数据源对话框来选择数据源,接下来就出弹出对应数据源的数据库连接信息,默认的用户名是建立ODBC数据源时指定的,在导出时可以修改成为别的用户。
说明、由此可以看出,通过Access导出到其它数据库系统是很方便的,只要机器上有目标数据库系统的ODBC驱动,并建立了ODBC数据源,就可以成功导出。
方法2:
导入到sql server,用SQL Server提供的导出工具导入Oracle, 但对一些image字段支持不好,你如果没这种字段就行。
方法3:
高级用户可以通过以下方法(只限文本字段):
先把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
方法4(只限文本字段):
其实如果你的单个文件不大的情况下(少于100000行), 可以全选COPY ,然后用PL/SQL Developer:先建立好表格,注意源表格和目的表格的字段顺序的对应,然后运行SQL语句select * from table for update或者在左侧树形菜单中选中相应的表格,点击右键,在弹出式菜单中点击"Edit Data". 然后打开表格数据上方的锁, 再按一下加号,添加一行新空行. 鼠标点到第一个空格然后粘贴. COMMIT即可.(小窍门, Oracle不支持的, 但很好用, 不会有问题)