Как мы можем вставить строку за строкой из плоского файла в базу данных OLEdb? - PullRequest
2 голосов
/ 02 мая 2019

У меня плоский файл с множеством строк и столбцов, разделенных разделителем (|). Прежде чем вставлять строку в место назначения, я должен проверить, существует ли уже запись или нет, сопоставляя некоторые столбцы. Если она есть, мне нужно добавить только значение поля количества в эту запись, а затем она должна перейти к следующей строке для вставки.

Я пробовал с преобразованием «Уточняющий запрос», затем я понял, что случай совпадения работает только тогда, когда в таблице уже есть записи, если таблица пуста, мы не можем делать поиск, потому что записи в плоский файл вставляются в пакетном режиме. Если таблица пуста, то для всех строк нет подходящего регистра, тогда все строки вставляются в дБ. но мне нужно отфильтровать запись плоского файла, чтобы каждая строка перед вставкой.

Flat file row:
Row1= 100|10.35|abc|10/2018
Row2= 100|15.35|abc|10/2018
Row3= 101|20.00|xyz|10/2018

цель для загрузки в oledb dest db;

Row1= 100|25.70|abc|10/2018  (25.70 == Row1 amount + Row2 amount)
Row3= 101|20.00|xyz|10/2018`enter code here`

1 Ответ

1 голос
/ 02 мая 2019

Я бы использовал агрегированное преобразование.

  1. для чтения с использованием источника плоских файлов и '|'delimiter.
  2. agg преобразовать группу на col1,3,4 и сумму col2
  3. загрузить в таблицу
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...