`
k_lb
  • 浏览: 801843 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

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

 
阅读更多

导出

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

导入

方法一

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

  实现步骤:

  1、打开MicroSoft Excel

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

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

  4、文件(F另存为(A

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

  5、须先创建表结构:

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

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

  创建表结构

以下是代码片段:

SQL> create table testid number——序号

usernamevarchar210),——用户名

passwordvarchar210),——密码

sj varchar220 ——建立日期);

  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 ´,´

idusernamepasswordsj ——定义列对应顺序

  ainsert,为缺省方式,在SQL*LoaderExcel数据装载开始时要求表为空

  bappend,在表中追加新记录

  creplace,删除旧记录,替换成新装载的记录

  dtruncate,同上

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

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

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

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

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

以下是代码片段:

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

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

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

方法二

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

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

Excel导入SqlServer 数据库:http://blog.csdn.net/gnolhh168/archive/2011/06/02/6461282.aspx

先将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 DeveloperSql Window,写select语句查看数据,总是提示错误:Ora-00942:表或视图不存在。这个问题开始困扰了我好久,后来还是灵机一动,抱着试一试的心理在由sql server导入oracle时将表名改为全部大写(部分大写都不行),导入后不论Sql*Plus或者PLSQL DeveloperSql Window里写select语句(里面的表名用大写或者小写都行),都能正确的取出记录。很奇怪的问题,作为经验,如果哪位大侠有高见,请不吝赐教。

方法三

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

方法四

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics