1

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.

saikiran
  • 71
  • 2
  • 8

1 Answers1

0

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/.

Gary_W
  • 9,933
  • 1
  • 22
  • 40