当前位置: 代码迷 >> Oracle开发 >> oracle sqlldr 导入 如何让一个字段根据序列递增
  详细解决方案

oracle sqlldr 导入 如何让一个字段根据序列递增

热度:611   发布时间:2016-04-24 06:35:47.0
oracle sqlldr 导入 怎么让一个字段根据序列递增
表结构

-- Create table
create table T_1299_DQ_HDM
(
  F_ID         NUMBER(11) not null,
  F_CODE       VARCHAR2(50) not null,
  F_USERNUMBER NUMBER(11),
  F_STATE      VARCHAR2(1) default 0,
  F_UPDATETIME VARCHAR2(17),
  F_CHANNEL    VARCHAR2(10),
  F_WINNO      NUMBER(11),
  F_AREANUM    VARCHAR2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints 
alter table T_1299_DQ_HDM
  add primary key (F_ID)
  using index 
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );


我只需要导入f_id 和f_code  ,f_id根据序列递增
sqlldr 控制文件 :

Load DATA 
CHARACTERSET ZHS16GBK
append INTO 
TABLE t_1299_dq_hdm 
fields terminated by "|"  optionally enclosed by "." 
trailing nullcols
(
F_CODE ,
F_ID "SEQ_1299_HDM.nextval"
)




我建了一个序列 SEQ_1299_HDM
这样我试过了, f_id取不到值 记录插入不了。。

导入的文本文件 txt 格式如下
12323
12312
12321
就是这样的 一行一条数据也就是要导入的f_code



------解决思路----------------------
参考
 在sqlldr中如何使用序列(sequence)
------解决思路----------------------
sqlldr 导数据时,不用管他,在表上建一个 TR ,就比较方便了。具体的可以百度一下“ ORACLE 序列 自增”
  相关解决方案