当前位置:Gxlcms > 数据库问题 > 如何把excel数据导入数据库

如何把excel数据导入数据库

时间:2021-07-01 10:21:17 帮助过:22人阅读

  1. create table user_test
  2. (
  3. seq number(10) primary key,
  4. msisdn varchar2(11) not null,
  5. user_name varchar2(50) not null,
  6. dt date,
  7. comment1 varchar2(50),
  8. comment2 varchar2(50)
  9. );
  10. create sequence user_test_seq
  11. INCREMENT BY 1 -- 每次加几个
  12. START WITH 1 -- 从1开始计数
  13. insert变成这样写:
  14. insert into user_test(msisdn,user_name,dt,comment1,comment2) values(‘13597093898‘,‘张三42‘,to_date(‘2013/2/8 20:00:01‘,‘yyyy/mm/dd HH24:mi:ss‘),‘yyyy‘,‘yyyyy‘);
技术分享图片

 

 

触发器:

 

技术分享图片
  1. CREATE OR REPLACE TRIGGER my_trigger
  2. BEFORE INSERT
  3. ON user_test FOR EACH ROW
  4. WHEN (new.seq is null)
  5. BEGIN
  6. SELECT user_test_seq.nextval INTO :new.seq FROM DUAL;
  7. END my_trigger;
技术分享图片

 

 

其中:new.seq是指新列中的seq字段。

 

 

为更好的解决这些问题, 下面介绍第二种方法。

 

2. 写loader

 

1) 把excel中的数据另存为.csv文件,字段逗号分隔。假设保存为gov.csv

2 )写ctl文件:

 

 gov.ctl

技术分享图片
  1. LOAD DATA
  2. INFILE ‘gov.csv‘
  3. APPEND
  4. INTO TABLE user_test
  5. FIELDS TERMINATED BY ‘,‘
  6. trailing nullcols
  7. //下面列先后顺序同文件中数据字段的顺序。
  8. (
  9. seq "user_test_seq.nextval",
  10. MSISDN,
  11. user_name,
  12. DT date "yyyy/mm/dd HH24:mi",
  13. comment1 ,
  14. comment2
  15. )
技术分享图片

 

 

3) 写par文件, 假设名为test.par,其内容为:

技术分享图片
  1. userid=用户/密码
  2. control=./gov.ctl
  3. log=./t.log
  4. bad=./t.bad
  5. skip=1 //跳过第一行标题
  6. rows=10000 //每n行commit一次
技术分享图片

 

 

4)sqlldr parfile=test.par

 

在我的服务器上,导入百多万的数据应该是一分钟之内的事。

如何把excel数据导入数据库

标签:hellip   seq   bar   dash   执行   excel格式   先后   数据导入   双引号   

人气教程排行