Oracle-club: FAQ - SQL Loader


Новости | FAQ | Ссылки | Темы | Утилиты | Documentation | Семинары

Утилитa для загрузки длинных файлов в БД Oracle7

Вопрос:

Умеет ли SQL Loader загружать данные из DBF ?

Ответ:

SQL*Loader умеет грузить DBF-ки. 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 то LOAD DATA лучше заменить на LOAD DATA characterset ru8pc866 Размерности полей соответствуют размерностям в .DBF-файле. Видимо, все дело в волшебных буквах " DB3 " с указанием длины записи ("16"). Документация по Loader'у смутно говорит о некоей "OS-специфичной строке" и посылает подальше, к OS-зависимой документации. Но работают эти буковки "DB3" только для loader'ов под виндами. Если попробуешь использовать этот ctl файл для Unix (проверено для Dynix), получишь на выходе ругань.

Вопрос:

Как должен выглядеть .CTL чтобы загружать текстовые данные в LONG ?

Ответ:

ctl-файл такой : LOAD DATA INFILE './NWWSU.HTML' "fix 65535" APPEND CONCATENATE 2 INTO TABLE song ( filename constant 'NWWSU.HTML' , song_text char(99860) ) комментарий : загрузка производится пачками по 65535 байт или менее CONCATENATE 2 - сколько частей =<65535 байт должны быть соединены в одну song_text char(99860) - указано поле таблицы типа LONG и размер загружаемого файла NWWSU.HTML плюс 20 (реальный размер 99840)

Вопрос:

Как должен выглядеть .CTL чтобы загружать графические данные в LONG RAW ?

Ответ:

ctl-файл такой : LOAD DATA INFILE doll.bmp "fix 65535" APPEND INTO TABLE photos ( per_id constant 1, photo raw(22738) ) комментарий : загрузка производится пачками по 65535 байт или менее raw(22738) - указано тип данных и размер загружаемого файла "doll.bmp" плюс 20 (реальный размер 22718) CONCATENATE - здесь не нужны т.к. реальный размер < 65535 байт

Вопрос:

Возник вопрос - необходимо закачать большой объем данных (100 Mб тестов) в Oracle. Существует ли способ закачки быстрее, чем SQLLoader ? Если нет, то какие параметры необходимо поставить, чтобы закачка шла быстрее

Ответ:

Насколько извесно SQLLoader грузит быстрее всего Чтобы быстрее грузилось нужно поставить в командной строке DIRECT=TRUE и в CTL файле UNRECOVERABLE Это даст загрузку без записи в RedoLog на чем будет экономиться время и место Ну и таблица должна быть пустая и без всяких тригеров и индексов А при DIRECT тригерры не отрабатываются, а индексы в конце загрузки просто перестраиваются. И желательно, что бы данные лежали на "своих дисках", а не на NFS :-)) UNRECOVERABLE LOAD DATA CHARACTERSET RU8PC866 INFILE "F1102.DBF" "DB3 60" APPEND INTO TABLE F1102 (TL POSITION(2:8) INTEGER EXTERNAL, OS POSITION(9:14) INTEGER EXTERNAL, UL POSITION(15:18) INTEGER EXTERNAL, ND POSITION(19:21) INTEGER EXTERNAL, BD POSITION(22:22) CHAR,

Вопрос:

Ответ:


Новости | FAQ | Ссылки | Темы | Утилиты | Documentation | Семинары