Как я могу сохранить значение выражения в управляющем файле sqlldr и загрузить его в несколько столбцов?

У меня проблемы с сохранением выражения для загрузки в два отдельных столбца.

У нас есть два значения - RECORD_ID и ITEM_NUMBER, которые оба требуют уникальных значений в строке.

Моим первым впечатлением было каким-то образом загрузить значение последовательности в ограничивающий заполнитель или что-то в этом роде, а затем использовать его в идентификаторе и номере записи, но мне трудно понять, как мне поступить.

Ниже приведен фрагмент моего текущего управляющего файла, который я использую:

...
FIELDS TERMINATED BY '|'
TRAILING NULLCOLS
(

FIELD1   BOUNDFILLER POSITION(1), -- 
...
FIELD79 BOUNDFILLER,

COLUMN_NAME EXPRESSION ":FIELD1",
ITEM_NUMBER EXPRESSION "???",
...
RECORD_ID "RECORD_ID_SEQ.NEXTVAL"
)

Я надеялся, что смогу сделать что-то вроде

TEMPVALUE BOUNDFILLER "RECORD_ID_SEQ.NEXTVAL"

но не нашли ничего похожего в природе.

1 ответ

Я полагаю, что-то подобное принадлежит триггеру BEFORE INSERT на столе.

CREATE OR REPLACE TRIGGER tablename_BI
BEFORE INSERT ON tablename
FOR EACH ROW

BEGIN
  :new.record_id := RECORD_ID_SEQ.NEXTVAL;
END;
Другие вопросы по тегам