时间:2021-07-01 10:21:17 帮助过:22人阅读
- create table user_test
- (
- seq number(10) primary key,
- msisdn varchar2(11) not null,
- user_name varchar2(50) not null,
- dt date,
- comment1 varchar2(50),
- comment2 varchar2(50)
- );
- create sequence user_test_seq
- INCREMENT BY 1 -- 每次加几个
- START WITH 1 -- 从1开始计数
- insert变成这样写:
- 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‘);
触发器:
- CREATE OR REPLACE TRIGGER my_trigger
- BEFORE INSERT
- ON user_test FOR EACH ROW
- WHEN (new.seq is null)
- BEGIN
- SELECT user_test_seq.nextval INTO :new.seq FROM DUAL;
- END my_trigger;
其中:new.seq是指新列中的seq字段。
为更好的解决这些问题, 下面介绍第二种方法。
2. 写loader
1) 把excel中的数据另存为.csv文件,字段逗号分隔。假设保存为gov.csv
2 )写ctl文件:
gov.ctl
- LOAD DATA
- INFILE ‘gov.csv‘
- APPEND
- INTO TABLE user_test
- FIELDS TERMINATED BY ‘,‘
- trailing nullcols
- //下面列先后顺序同文件中数据字段的顺序。
- (
- seq "user_test_seq.nextval",
- MSISDN,
- user_name,
- DT date "yyyy/mm/dd HH24:mi",
- comment1 ,
- comment2
- )
3) 写par文件, 假设名为test.par,其内容为:
- userid=用户/密码
- control=./gov.ctl
- log=./t.log
- bad=./t.bad
- skip=1 //跳过第一行标题
- rows=10000 //每n行commit一次
4)sqlldr parfile=test.par
在我的服务器上,导入百多万的数据应该是一分钟之内的事。
如何把excel数据导入数据库
标签:hellip seq bar dash 执行 excel格式 先后 数据导入 双引号