我可以使用sqlldr将行插入表中而不用担心。我想将文件的所有行标记为唯一编号,以便我可以将它们视为一个批处理。我尝试了“my_db_seq.nextval”作为批次ID。但它不符合我的目的。
因此,请在使用sqlldr加载时,建议如何为整个文件行创建唯一的批处理ID。
答案 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()"
...