Excel导入oracle数据,oracle数据库导出excel方法

作者:袖梨 2022-06-29

导出
导出的话,在PL/SQL的SQL Window中查询结果中选中查询结果右单击就有 COPY TO EXCEL这个选择的

导入


方法一
以下的文章主要是介绍如何用SQL*Loader将Excel相关的数据导出到Oracle数据库,其主要的目的是实现往Oracle数据库里插入excel相关文件中的实际应用数据,以下就是文章的具体内容的介绍。

  实现步骤:

  1、打开MicroSoft Excel

  2、文件(F)→新建(N)→工作簿→

  3、输入SQL*Loader将Excel数据后,存盘为test.xls,

  4、文件(F)→另存为(A)→

  保存类型为:制表符分隔,起名为text.txt,保存到C: (也可以保存为csv文件,以逗号分隔)

  5、须先创建表结构:

  连入SQL*Plus,以system/manager用户登录,

  以下是代码片段:SQL> conn system/manager

  创建表结构

以下是代码片段:

SQL> create table test(id number,——序号

usernamevarchar2(10),——用户名

passwordvarchar2(10),——密码

sj varchar2(20) ——建立日期);

  6、创建SQL*Loader输入数据Oracle数据库所需要的文件,均保存到C:,用记事本编辑:

  控制文件:input.ctl,内容如下:

  load data ——1、控制文件标识

  infile ´test.txt´ ——2、要输入的数据文件名为test.txtappend

  into table test——3、向表test中追加记录

  fields terminated by X´09´——4、字段终止于X´09´,是一个制表符(TAB),如果是csv文件,这里要改为: fields terminated by ´,´

(id,username,password,sj) ——定义列对应顺序

 

  a、insert,为缺省方式,在SQL*Loader将Excel数据装载开始时要求表为空

  b、append,在表中追加新记录

  c、replace,删除旧记录,替换成新装载的记录

  d、truncate,同上

  7、在DOS窗口下使用SQL*Loader命令实现数据的输入 www.111com.net

  以下是代码片段:C:>sqlldr  system/manager  control=input.ctl

  默认日志文件名为:input.log

  默认坏记录文件为:input.bad

  如果是远程对SQL*Loader将Excel数据库进行导入Oracle数据库操作,则输入字符串应改为:

以下是代码片段:

C:>sqlldr userid=system/manager@serviceName_192.168.1.248 control=input.ctl

  8、连接到SQL*Plus中,查看是否成功输入,可比较input.log与原test.xls文件,查看Oracle数据库是否全部导入,是否导入成功。

 

注意:excel中单元格内容不要有换行,批注等之类的附加样式,这样可能导致导出的csv或txt文件含有特殊符号,以至导入不进去

方法二

也可以导入sql server 用它的导出工具导入oracle 但对一些image字段支持不好,你如果没这种字段就行。

用MS_sqlserver 提供的数据导出导入功能可以方便的把excel方便的导入oracle数据库

 

先将excel表导入sqlserver数据库中,然后再从sql server导入到oracle中。这两部操作都简单,如果不会随便查个帮助就可以了,要不然问我也行:)
这里有两个自己的经验:一是注意excel文件的版本和格式要与导入到sql server时的数据源匹配。如果导入到sql server时的数据源选Microsoft Excel 97-2000的话,而excel文件的版本为Micaosoft Excel 5.0/95 工作簿,则有可能出问题。关于如何看Excle文件格式,你打开excel文件,选择另存为,即可看到像Micaosoft Excel 5.0/95 工作簿或者是Microsoft Office Excle 工作簿等等其它的保存类型。
二就是由sql server导入到oracle中时,记得将在oracle中的表名全部用大写。这条经验是花了好些时间才换来的。我刚开始导时,由于由excle导入sql server的表名为小写,然后倒到oracle中默认的也是小写,结果出现了一些很奇怪的情况,一个就是在Enterprise Manager Console中,在所有表的列表里面可以看到倒入的表,并且利用表数据编辑器还可以看到导入好的数据,但是在具体的表空间下确连表也看不到,实在是奇怪,我老是在想那表到底跑哪去了;二就是不管在具体表空间下看不看得到,表数据总是可以看到的,但是在Sql*Plus或者利用PLSQL Developer的Sql Window,写select语句查看数据,总是提示错误:Ora-00942:表或视图不存在。这个问题开始困扰了我好久,后来还是灵机一动,抱着试一试的心理在由sql server导入oracle时将表名改为全部大写(部分大写都不行),导入后不论Sql*Plus或者PLSQL Developer的Sql Window里写select语句(里面的表名用大写或者小写都行),都能正确的取出记录。很奇怪的问题,作为经验,如果哪位大侠有高见,请不吝赐教。www.111com.net

方法三


使用PLSQL Developer工具,在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536—— 可以全选数据复制,然后用PLSQL Developer工具。
1 在PLSQL Developer的sql window里输入select * from test for update;
2 按F8执行
3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit(对号)提交即可

 方法四

 可以在网上找这个工具 XlsToOra ,小巧好用,破解版得没找到,我只有英文版的,一次可以导入1000条。

相关文章

精彩推荐