1-й вопрос: Я пытаюсь загрузить test1.csv, test2.csv и test3.csv к table1, table2 и Таблица3 используя SQLLDR. Пожалуйста, несите мои недостатки, если вы владеете знаниями в этой области, я не мог понять это правильно, определяя это в .ctl-файле, только я могу думать о нижеприведенном коде, но это неверно. поэтому мой вопрос в том, как я могу сделать это правильно или это возможно?SQLLDR - как загрузить несколько CSV для multple таблицы
OPTIONS (SKIP=1)
LOAD DATA
INFILE 'test1.csv'
INFILE 'test2.csv'
INFILE 'test2.csv'
TRUNCATE
INTO TABLE table1
fields terminated by ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
Col1 "TRIM(:Col1)",
Col2 "TRIM(:Col2)"
)
INTO TABLE table2
fields terminated by ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
Colx "TRIM(:Colx)",
Coly "TRIM(:Coly)"
)
INTO TABLE table3
fields terminated by ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
Colp "TRIM(:Colp)",
Colq "TRIM(:Colq)"
)
2-й вопрос: Это альтернатива этому первому вопросу. Поскольку я не мог понять, что первый, то, что я сделал, разбивает нагрузки для каждой таблицы на несколько .ctl-файлов и вызывает их все три в .bat-файле. Это работает, по крайней мере, но мой вопрос заключается в способе обработки всех этих 3 .ctl-файлов в сеансе без упоминания пользователя/пароля 3 раза, как показано ниже.
sqlldr userid=user/[email protected] control=test1.ctl
sqlldr userid=user/[email protected] control=test2.ctl
sqlldr userid=user/[email protected] control=test3.ctl
Есть ли в базе данных данные, которые могут быть использованы для ввода таблицы, на которую должны направляться данные? –
Я не использовал ни одного столбца в качестве ключа, чтобы отличать данные, но я могу попробовать, добавив ключ. – Chito