Как вставить только уникальные значения из файла CSV в базу данных Oracle? - PullRequest
1 голос
/ 02 сентября 2011

Я загружаю файл CSV, используя сервлет, и вставляю его в таблицу Oracle, используя JDBC. Мне нужно вставить только уникальные значения в файл CSV. Если значения в CSV-файле уже есть в таблице базы данных, их не следует вставлять в таблицу. Поэтому он должен вставлять только уникальные значения из файла CSV.

Ответы [ 3 ]

4 голосов
/ 02 сентября 2011

Эти параметры должны помочь избежать дополнительного вызова БД для решения этой ситуации.

Вариант 1: Очень простой и требует наименьшего количества кода ... но работает, когда нет глобальной границы транзакции.

Просто включите все вставки, в случае любого исключения Constraint, просто перехватите его и ничего не делайте, вернитесь к другому значению

Вариант 2: Каждый раз, когда вы читаете строку из CSV,добавьте его в коллекцию, перед добавлением просто проверьте, существует ли объект уже (например: arrayList.contains (экземпляр объекта)) и продолжайте добавлять, только когда нет объекта с похожими данными).В конце сделайте объемную вставку.Примечание. Если данные большие, перейдите к фиксированному набору данных для массовой вставки.

1 голос
/ 02 сентября 2011

Рассмотрим эти шаги:

  1. Считать значение из файла CSV
  2. Код для поиска «значения» в базе данных и, если он не найден, вставьте его.
0 голосов
/ 02 сентября 2011

Я предполагаю, что процесс вставки данных в базу данных находится в цикле, вы читаете из CSV и вставляете в БД, так почему бы просто не сделать выборочный запрос, чтобы проверить, существует ли значение и существует ли он не вставляйте его

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