首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么把Excel中的数据最有效的导入到Oracle中

2012-03-14 
如何把Excel中的数据最有效的导入到Oracle中现有一个Excel表,有固定的几个列,可能有几百行,现通过Delphi,

如何把Excel中的数据最有效的导入到Oracle中
现有一个Excel表,有固定的几个列,可能有几百行,现通过Delphi,需要按序取出一行的内容,把取到的值通过参数转的给Oracle中的存储过程,导入到Oracle中去。谁有最有效率的取Excel每行单元格的源程序呀

[解决办法]
既然是通过存储过程导入数据只能一行一行的读取数据在调用存储过程插入数据,最快的办法就是使用ado连接excel
[解决办法]
使用SQL*Loader
这个是用的较多的方法,前提必须oracle数据中目的表已经存在。
大体步骤如下:
1 将excle文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为 ', '(fields terminated by ', '),假设保存到c盘根目录。
2 如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms。
3 用记事本创建SQL*Loader控制文件,网上说的文件名后缀为ctl,其实我自己发现就用txt后缀也行。比如命名为control.ctl,内容如下:(--后面的为注释,实际不需要)

  load data           --控制文件标识
  infile 'c:\text.txt '     --要输入的数据文件名为test.txt
  append into table test    --向表test中追加记录
  fields terminated by X '09 '  --字段终止于X '09 ',是一个制表符(TAB)
  (dm,ms)   --定义列对应顺序
备注:数据导入的方式上例中用的append,有一下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录
;truncate,同replace。
4 在命令行提示符下使用SQL*Loader命令实现数据的输入

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

热点排行