使用sqlldr插入具有批处理ID的行

时间:2018-05-30 10:29:53

标签: sql-loader

我可以使用sqlldr将行插入表中而不用担心。我想将文件的所有行标记为唯一编号,以便我可以将它们视为一个批处理。我尝试了“my_db_seq.nextval”作为批次ID。但它不符合我的目的。

因此,请在使用sqlldr加载时,建议如何为整个文件行创建唯一的批处理ID。

1 个答案:

答案 0 :(得分:0)

在以下函数中对序列进行调用:

create or replace function get_batch_id return integer is
     x exception;
     -- ORA-08002: sequence %s.CURRVAL is not yet defined in this session
     pragma exception_init (x, -8002);
   begin
     return my_db_seq.currval;
   exception
     when x then 
       return my_db_seq.nextval;
   end;

然后从控制文件中调用它:

...
batch_id "get_batch_id()"
...

从这篇文章:https://www.orafaq.com/forum/t/187236/