Как использовать несколько условий в загрузчике SQL?
У меня есть один CSV-файл с нижеуказанным форматом. Первый столбец - идентификатор, второй столбец - имя, а третий - отдел В этом файле более 700 тыс. Строк. Я пытался переместить только детали отделов 10, 90, 30 и 70 в таблицу оракулов с помощью SQL Loader.
100, ААА, 10 101, В,10 102,CCC,20 103,DDD,30 104,EEE,40 105,FFF,50 106, ОГШ,70 107,HHH,60 108,III,20 109,JJJ,80 110, ККК,90 111,LLL,90 112, МММ,50 113,NNN,80 114, ООО, 10
Формат моей таблицы:-
создать таблицу DEPT_LOADER(ИДЕНТИФИКАЦИОННЫЙ НОМЕР, ИМЯ VARCHAR2(100), Номер депо);
а ниже находится контрольный файл
загрузить данные infile 'F:\SQL_Loader\dept.csv' плохой файл 'F:\SQL_Loader\dept.bad' discardfile 'F:\SQL_Loader\dept.dsc' вставить в таблицу DEPT_LOADER когда dept = '10' или dept = '90' или dept = '30' или dept = '70' поля заканчиваются на ',' (Номер, имя, отдел)
но оракул не разрешил оператор "или" в предложении когда. Я попытался с "в" предложении и получить тот же тип ошибки.
SQL * Loader-350: синтаксическая ошибка в строке 7. Ожидается "(", найдено "или". когда dept = '10' или dept = '90' или dept = '30' или dept = '70'
Пожалуйста, помогите мне в этом. Как я могу использовать более одного условия в контрольном файле
1 ответ
Решение
SQL*Loader не позволяет OR
оператор в WHEN
статьи. Вы должны использовать несколько INSERT INTO DEPT_LOADER
,
Ваш контрольный файл должен быть как;
LOAD DATA
INFILE 'F:\SQL_Loader\dept.csv'
BADFILE 'F:\SQL_Loader\dept.bad'
DISCARDFILE 'F:\SQL_Loader\dept.dsc'
INSERT
INTO TABLE DEPT_LOADER WHEN DEPT = '10'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)
INTO TABLE DEPT_LOADER WHEN DEPT = '90'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)
INTO TABLE DEPT_LOADER WHEN DEPT = ’30'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)
INTO TABLE DEPT_LOADER WHEN DEPT = ’70'
FIELDS TERMINATED BY ','
(
ID POSITION(1),
NAME,
DEPT
)