Данные Oracle не загружаются после ПОЗИЦИИ (10)
Я пытался загрузить некоторые данные из CSV-файла на основе определенных условий, и я ограничен использованием элемента управления "ИЛИ" в условии когда (Oracle ctl) данные загружаются для первых 11 условий, но не загружают данные после первое 11 условие
Ниже приведен пример кода
create table t1 (
c1 varchar(10),
c2 varchar(10),
c3 varchar(10)
)
---------- dataloader -----------
options(errors=20000)
LOAD DATA
INFILE 'D:\Scripts\abc.csv'
BADFILE 'D:\Scripts\abc.BAD'
DISCARDFILE 'D:\Scripts\abc.DIS'
DISCARDMAX 20000
insert
INTO TABLE t1
when c1='James'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1,
c2,
c3
)
INTO TABLE t1
when c1='John'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1 POSITION(1),
c2,
c3
)
INTO TABLE t1
when c1='Sam'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1 POSITION(2),
c2,
c3
)
.
.
.
INTO TABLE t1
when c1='Mark'
FIELDS TERMINATED BY "," optionally enclosed by '"'
Trailing NULLCOLS
(
c1 POSITION(12),
c2,
c3
)
-------------- выполнение загрузчика данных -----
sqlldr scott/tiger direct=true control='filepath'
1 ответ
Решение
Для выполнения каждого условия нам нужно поместить тег POSITION(1) до POSITION(9) для каждого условия. в противном случае файл ctl не читает теги и игнорирует условие