设为首页 收藏本站
查看: 426|回复: 0

[经验分享] Excel导入oracle数据,oracle数据库导出excel

[复制链接]

尚未签到

发表于 2016-6-23 10:08:09 | 显示全部楼层 |阅读模式
导出
导出的话,在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条。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-233997-1-1.html 上篇帖子: Oracle授予用户权限 下篇帖子: oracle 高级分组
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表