Insert rows with batch id using sqlldr

别说谁变了你拦得住时间么 提交于 2019-12-08 05:55:38

问题


I am able to insert rows into a table using sqlldr with no worries. I would like to tag all rows of a file to a unique number so that I can treat them as one batch. I tried "my_db_seq.nextval" as batch id. But its not serving my purpose.

So please advise on how to create a unique batch id for entire set of rows of a file while loading using sqlldr.


回答1:


Wrap your call to the sequence in a function like this:

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;

Then call it from the control file:

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

From this post: https://www.orafaq.com/forum/t/187236/.



来源:https://stackoverflow.com/questions/50602392/insert-rows-with-batch-id-using-sqlldr

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!