问题
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