Oracle sql loader 导数据时添加序号的三种方法

63 篇文章 6 订阅

1.用触发器和序列实现

CREATE  SEQUENCE u.seq_questionno
START 
WITH   0
MAXVALUE 
999999999999999999999999999
MINVALUE 
0
NOCYCLE
NOCACHE
NOORDER;

CREATE   OR   REPLACE   TRIGGER  u.tr1
   BEFORE 
INSERT
   
ON  u.t1
   REFERENCING OLD 
AS  OLD NEW  AS  NEW
   
FOR  EACH ROW
BEGIN
   
SELECT  c1.NEXTVAL
     
INTO  :NEW.c1
     
FROM  DUAL;
END ;

 

控制文件:

LOAD DATA 
INFILE 'G:a.txt' 
BADFILE 'G:a.bad'
DISCARDFILE 'G:a.dsc'

INTO TABLE "T1"
APPEND
FIELDS TERMINATED BY X'9'
TRAILING NULLCOLS

    C2,
    C3, 
    C4,
    C5
    -- C1
)

2.直接在控制文件中加入序列

LOAD DATA 
INFILE 'G:a.txt' 
BADFILE 'G:a.bad'
DISCARDFILE 'G:a.dsc'

INTO TABLE "T1"
APPEND
FIELDS TERMINATED BY X'9'
TRAILING NULLCOLS

    C2,
    C3, 
    C4,
    C5,
    C1 "SEQ_QUESTIONNO.nextval"
)

3.不用序列,在控制文件中使用 RECNUM

LOAD DATA 
INFILE 'G:a.txt' 
BADFILE 'G:a.bad'
DISCARDFILE 'G:a.dsc'

INTO TABLE "T1"
APPEND
FIELDS TERMINATED BY X'9'
TRAILING NULLCOLS
(
    C1 RECNUM,
    C2,
    C3, 
    C4,
    C5
)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值