Можно использовать ctl-файл такого вида:
LOAD DATA infile "COUNT_VD.DBF" " DB3 16 " append into table AIS_AUDIT.T21AU_GAL TRAILING NULLCOLS ( M_REG "19", REGION POSITION(2:6) INTEGER EXTERNAL, ENT_TYPE POSITION(7:7) INTEGER EXTERNAL, KD POSITION(8:12) CHAR, N_PLAT POSITION(13:16) INTEGER EXTERNAL )
При загрузке файлов с кодировкой DOS(866) LOAD DATA
лучше заменить на LOAD DATA characterset ru8pc866
.
Размерности полей соответствуют размерностям в .DBF-файле.
Hо ctl-файл такого вида понимают только loader'ы под виндами. Если попробуешь использовать этот ctl-файл для Unix (проверено для Dynix), получишь на выходе ругань.
В Oracle 8.0.5 и более поздних редакциях такая конструкция больше не работает.
Решение для Oracle 8.0.5: ставить клиента от Oracle 7.3.4, ставить оракловские утилиты от Oracle 7.3.4. Клиент Oracle 7.3.4 с сервером Oracle 8.0.5 работает. Sqlldr73 - тоже.
На сайте http://oraclub.trecom.tomsk.su Вы найдёте также утилиту db3load, которая готовит CTL-болванки и скрипты для оракловской таблицы.
Владимир Белов (Vladimir Belov)
ato@www.cbr.ru