Использование Oracle Sequence в SQL Loader? - PullRequest
1 голос
/ 15 июня 2010

Я использую ключевое слово SEQUENCE в управляющем файле SQL Loader для генерации первичных ключей.Но для особого сценария я хотел бы использовать Oracle sequence в контрольном файле.В документации Oracle для SQL Loader об этом ничего не сказано.SQL Loader поддерживает это?

Ответы [ 3 ]

2 голосов
/ 13 ноября 2015

Я успешно использовал последовательность из моего Oracle 10g database для заполнения поля первичного ключа во время sqlldr запуска:

Вот мои данные.ctl:

LOAD DATA
INFILE 'data.csv'
APPEND INTO TABLE my_data
FIELDS TERMINATED BY ','
(
  ID "MY_SEQUENCE.NEXTVAL",
  name char
)

и мои data.csv:

-1, "dave"
-1, "carol"
-1, "tim"
-1, "sue"

По какой-то причине вы должны поместить фиктивное значение в файл CSV, даже если бы вы поняли, что sqlldr просто выяснит, что вы хотите использовать последовательность.

2 голосов
/ 30 ноября 2015

Мне удалось загрузить без использования манекена, переключив последовательность на последний столбец, как в:

LOAD DATA
INFILE 'data.csv'
APPEND INTO TABLE my_data
FIELDS TERMINATED BY ','
(
    name char,
    ID "MY_SEQUENCE.NEXTVAL"
)

, а data.csv будет выглядеть так:

"dave"
"carol"
"tim"
"sue"
1 голос
/ 27 июня 2010

Я так не думаю, но вы можете назначить последовательность с помощью триггера при вставке, если это не прямая загрузка пути.

...