о, понял .. Это не окончательное решение и имеет некоторые накладные расходы, но я могу сделать это за 2 прогона
a) запустить как CTL выше.Изменить Когда TERMINATIONDATE = ''
до Когда TERMINATIONDATE! = ''
Отброшенные записи будут вставлены в DISCARDFILE 'C: \ temp \ users.dsc' теперь мой удаленный файл будет содержать всезаписи, которые я хотел загрузить
b) выполнить вторую команду CTL, чтобы получить файл DSC в качестве входных данных, больше не пропускать записи и не указывать условие when, ни
LOAD DATA
INFILE 'C:\temp\users.dsc'
BADFILE 'C:\temp\users.bad'
DISCARDFILE 'C:\temp\users-run2.dsc'
TRUNCATE
INTO TABLE "alawakaba"."users"
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
ID,
FIRSTNAME,
LASTNAME,
FUNCTION,
DEPARTMENT,
COSTCENTER,
HIREDATE,
Field8 FILLER,
TERMINATIONDATE,
LOCCODE
)
Не самый лучший или самый быстрый, но он делает свое дело.
не может поверить, что такое простое предложение не работает с самого начала в SQLLDR.Во всяком случае, надеюсь, что это поможет
K