Использование Oracle SQL*Loader для загрузки данных в таблицы
Данный минифак не претендует на полноту отражения всех особенностей работы с SQL*Loader, а служит для того, чтобы быстро войти в темуSQL*Loader — специальная утилита Oracle сервера для загрузки данных в БД из локальных файлов с данными. Для того чтобы воспользоваться ее функционалом создадим несколько файлов, которые будем использлвать в работе, и положим их в папку C:\oracle\ora90\BIN\load (в общем случае):
- data.dat или data.txt — собственно файл с данными. Пусть он будет представлять строки данных разделенных сиволом перевода строки.
- load.ctl — контрольный файл — содержит инструкции по загрузке данных в БД, в нашем случае будет иметь вид:
То что мы не используем, но встречается часто: fields terminated by ‘,’ означает, что границы данных определены по символу «,», а optionally enclosed by ‘»‘ определяет, что данные могут содержать символ обрамления.
LOAD DATA -- Загружаем данные INFILE 'data.txt' "str '\n'" -- из файла data.txt, разделитель строк str '\n' - символ перевода строки INTO TABLE load_data -- в таблицу load_data FIELDS terminated BY ',' OPTIONALLY ENCLOSED BY '"' (DATA char) -- название столбца и тип данных в таблице load_data
- load.bat — пакетный файл (англ. batch file) выполняющий запуск sqlldr.exe имеет вид:
Строка связи — это та строка, которая должна быть прописана в ORA Network Configuration File: D:\oracle\ora90\network\admin\tnsnames.ora (в общем случае). Errors=100 — количество допустимых ошибок (по умолчанию 50).
SET nls_lang=russian_cis.ru8pc866 -- устанавливаем нужную кодировку sqlldr.exe userid=user_name/user_pass@test control=LOAD.ctl errors=100 bad=DATA.bad -- test — строка связи*, load.ctl — контрольный файл, data.bad — файл плохих записей
- Далее находим нашу папку C:\oracle\ora90\BIN\load, находим файл load.bat, запускаем его и любуемся на результат:
Пока все, пишите об ошибках и неточностях.
SELECT * FROM load_data;
- Шаг 135 – БД Oracle – Загрузка данных SQL*Loader
- Справочник по контрольным файлам для SQL*Loader (SQL*Loader Control File Reference)
- Часто задаваемые вопросы по SQL*Loader (SQL*Loader FAQ)
Интересно, что при сохранении *.xslx в «.csv с разделителем запятой» разделителем на самом деле становится точка с запятой.
Этот комментарий был удален автором.
ОтветитьУдалить