.Net  
方法一:

1、在本地创建一个Access数据库,将Excel数据先导入到Access。可直接导入点击鼠标右键,选择导入,文件类型选择要导入的Excel文件,也可通过创建宏用TransferSpreadsheet函数实现。
2、在本地创建ODBC,链接oracle数据库。将oracle中需要导入数据的表以链接表的方式在本地Access中创建(千万不要使用导入表)。
3、在Access数据库中创建插入查询将导入好的Excel数据导入到oracle中。

方法二:

先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl
用sqlldr进行导入!
insert.ctl内容如下:
load data           --1、控制文件标识
infile 'test.csv'       --2、要输入的数据文件名为test.csv
append into table table_name     --3、向表table_name中追加记录
fields terminated by ','   --4、字段终止于',',是一个逗号
(field1,
field2,
field3,
...
fieldn)-----定义列
列对应顺序

注意括号中field排列顺序要与csv文件中相对应
然后就可以执行如下命令:
sqlldr user/password control=insert.ctl

例子:
     首先我先建了一个表
SQL>  create table biao
  2  (username    varchar2(10),
  3  date1     varchar2(20),
  4  date2     varchar2(20),
  5  date3     varchar2(20)
  6  );

然后写了6.txt文件,存在c:/目录下
内容:

姓  名        工作时间        入党时间        增加时间
        200109        20040919        200409
        200109        20050331        20050331
        200109        20050331        20050331
        200109        20050331        20050331
        200109        20050331        20050331
        200109        20041220        20041220

写得ctl文件如下,存在c:/目录下

LOAD DATA
INFILE '6.txt'
INTO TABLE BIAO
fields terminated by x'0d'  trailing nullcols
(
USERNAME,
  DATE1,
DATE2,
DATE3
)

再 命令提示符中写的
sqlldr uerid=system/lllll control =input.txt


ctl文件为(ctl的文件名必须为表名):  
  Load   data  
  infile   'excelName.txt'  
  append   into   table   tableName(你的表名)  
  fields   terminated   by   X'09'  
  (A,B)    
   
   
  注意:  
  你先将你的文本文件的数据放入到excel中,然后将它已“制表符分隔”的形式保存  
  excelName.txt就为你报保存的文本文件  
  再将ctl、txt文件放入C盘根目录  
  最后在dos下输入:sqlldr   用户名/用户密码@sid     control=tableName  

要解决的问题有:linux查找当前目录绝对路径及在当前目录下如何运行Dos命令.
posted on 2007-06-12 23:37  东方新秀  阅读(662)  评论(0编辑  收藏  举报