Вставить строки с идентификатором пакета, используя sqlldr - PullRequest
0 голосов
/ 30 мая 2018

Я могу вставлять строки в таблицу, используя sqlldr, не беспокоясь.Я хотел бы пометить все строки файла уникальным номером, чтобы можно было рассматривать их как один пакет.Я попытался "my_db_seq.nextval" в качестве идентификатора партии.Но это не служит моей цели.

Поэтому, пожалуйста, посоветуйте, как создать уникальный пакетный идентификатор для всего набора строк файла при загрузке с использованием sqlldr.

1 Ответ

0 голосов
/ 05 июня 2018

Оберните ваш вызов последовательности в функцию, подобную этой:

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

...