Лучший способ массовой вставки данных в базу данных Oracle - PullRequest
5 голосов
/ 05 сентября 2011

Я собираюсь создать множество сценариев данных, таких как INSERT INTO и UPDATE

Будет 100 000 с лишним записей, если не 1 000 000

Каков наилучший способ быстрой передачи этих данных в Oracle? Я уже обнаружил, что SQL Loader не подходит для этого, так как он не обновляет отдельные строки.

Спасибо

ОБНОВЛЕНИЕ: Я напишу приложение для этого на C #

Ответы [ 3 ]

10 голосов
/ 05 сентября 2011

Загрузить записи в таблицу этапов с помощью SQL * Loader .Затем используйте массовые операции:

6 голосов
/ 05 сентября 2011

Чтобы сохранить это как можно быстрее, я бы держал все это в базе данных.Используйте внешние таблицы (чтобы Oracle мог прочитать содержимое файла) и создайте хранимую процедуру для выполнения обработки.

Обновление может быть медленным, если возможно, это может быть хорошимИдея рассмотреть возможность создания новой таблицы на основе всех записей в старой (с обновлениями), а затем переключить новые и старые таблицы.

3 голосов
/ 15 октября 2012

Как насчет использования программы для работы с электронными таблицами, такой как MS Excel или LibreOffice Calc?Вот как я выполняю массовые вставки.

  1. Подготовьте ваши данные в табличном формате.
  2. Допустим, у вас есть три столбца, A (текст), B (число) и C (Дата).В столбце D введите следующую формулу.Отрегулируйте соответственно.

="INSERT INTO YOUR_TABLE (COL_A, COL_B, COL_C) VALUES ('"&A1&"', "&B1&", to_date ('"&C1&"', 'mm/dd/yy'));"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...