sqlldr中使用自增序列

问题

接口文件与数据库表比较,少了一个按行自增的eventId,打算在使用sqlldr时直接加上这个自增字段

解决

1、 使用sqlldr中序列函数:

    options(skip = 0) 
    load data
    infile 'insertFileName'
    append into table insertTableName
    fields terminated by ','
    TRAILING NULLCOLS
    (
    prov_id        ,
    city_id        ,
    start_time     ,
    end_time       ,
    rate_time "to_date(\''''+fileDate+'''040000', 'yyyymmddhh24miss')" ,
    file_name constant "'''+insertFileName+'''" ,
    event_id sequence(max,1) 
    )

其中:

  • skip表示开头要跳过几条记录(默认值为0,即从第一条记录开始);
  • constant表示使用常量值填充file_name
  • sequence(max, 1)表示使用序列号从1开始逐条递增

2、使用oracle中的sequence,待验证

参考文章

sqlldr 中使用sequence
ORACLE官方手册

你可能感兴趣的:(sqlldr中使用自增序列)