您的位置:首页 > 数据库 > Oracle

oracle导入到Excel

2012-11-07 09:30 134 查看
一、从oracle到处数据到excel文件
方法一、直接从PL/SQL中,全选数据,然后复制粘贴到excel中;

方法二、同样是通过PL/SQL,在数据列中,点击右键-->导出结果-->选择csv。因为csv是早期的execel格式,是靠逗号分隔的,保存成csv文件之后,用Excel打开,另存为*.xls文件即可。

二、将excel文件导入到oracle
方法一:使用SQL*Loader
这个是用的较多的方法,前提必须oracle数据中目的表已经存在。
大体步骤如下:
1、将excel文件另存为一个新文件比如文件名为TEST.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl控制文件时要将字段终止符改为','(fields terminated by ','),假设将excel文件保存到c盘根目录下,C:\
2、如果没有存在的表结构,则创建,假设表为test,有两列为id,name。
3、用记事本创建SQL*Loader控制文件,命名格式:*.ctl。比如命名为control.ctl,内容如下:(--后面的为注释,在实际执行时,这些注释是需要去掉的)

  load   data
  infile   'c:\TEST.txt'
  append   into   table  TEST
  fields   terminated   by   X'09'
  (id,name)


*control.ctl说明:
  load data           --控制文件标识
  infile 'c:\TEST.txt'     --要输入的数据文件名为TEST.txt 或者infile 'c:\text.csv'
  append into table TEST    --向表test中追加记录
  fields terminated by X'09'   --字段终止于X'09',是一个制表符(TAB),若为, 则此处改X'09'为','
  (id,name) 

备注:数据导入的方式上例中用的append,有一下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录;truncate,同replace。

4、在命令行提示符下使用SQL*Loader命令实现数据的输入

C:\>sqlldr userid=system/manager control='c:\control.ctl'

---------------------------------------------------------------------------------------------------------------------

方法二 利用PLSQL Developer

1、用PL/SQLDeveloper导入,PL/SQL Developer是一种专门用于开发、测试、调试和优化oracle PL/SQL存储程序单元,比如触发器,存储过程,函数和程序包等集成开发环境。

在单个文件数据不多(小于10w行),并且目的表结构已经存在的情况下可以使用plsql developer工具将excel内容直接通过简单的copy,paste操作导入oracle数据库。具体操作方式如下:

A. 在plsql developer的sql window里输入select * from test for update,其中test是要导入的oracle数据表名称;

B. 执行查询(通过点击按钮或者快捷键F8可以实现);

C、点击查询结果上面的锁状按钮,使得查询到的内容处于编辑状态。

D、从excel数据表中copy(ctrl +C)要导入oracle中的数据,如果是单列数据导入,可以先按plsql developer中查询结果上面的“添加(+)”按钮,使得数据表处于添加数据状态,然后将鼠标在plsql developer的列名称上单击,最后使用快捷键ctrl + v 完成数据导入操作,并单击plsql developer中的“提交(对号)”按钮提交所做的修改。

E、如果是同时导入所有列,首先选择copy所有数据,然后点增加(+)并点击编辑那一行最前面的星号使得整行数据都处于被选择状态,最后paste即可将数据导入。

F、如果分列导入数据,则需要逐列完成,首先选择copy要导入的数据,然后然后点增加(+)并点击编辑那一列的名称,使得整列数据都处于被选择状态,最后paste即可将数据导入。

使用PLSQL developer执行数据的导入和导出操作主要存在的问题是在大数据量情况下对中文数据可能出错,估计将接收数据表的类型定义为nvarchar2的类型会比较好一点。另外,就是这种方法需要人工更多的参与,不能达到自动导入的效果。

---------------------------------------------------------------------------------------------------------------------

方法三、 使用其它数据转移工具作中转站。
我使用的是SQL Server2000。
先将excel表导入sqlserver数据库中,然后再从SQL Server导入到oracle中。这两步操作都简单。

有2点注意事项,注意事项:
一是注意excel文件的版本和格式要与导入到SQL Server时的数据源匹配。如果导入到SQL Server时的数据源选Microsoft Excel 97-2000的话,而excel文件的版本为Micaosoft Excel 5.0/95 工作簿,则有可能出问题。关于如何看Excle文件格式,你打开excel文件,选择另存为,即可看到像Microsoft Excel 5.0/95 工作簿或者是Microsoft Office Excle 工作簿等等其它的保存类型;

二就是由SQL Server导入到oracle中时,记得将在oracle中的表名全部用大写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: