2015-03-06 2 views
0

Мне нужно сгенерировать выходные файлы в нескольких форматах csv из данных, хранящихся в базе данных SQL. Так, например, у меня есть следующие данные:Как управлять несколькими выходными форматами csv

Order Id | Order Date | PO Number | Total Value 
100  | 06/03/2015 | 12345  | £175.50 

И из этого мне нужно сгенерировать два файла csv.

Первый в формате:

orderdate,orderid,ponum,value 
06-03-2015,000100,12345,17550 

второй в этом:

order number,date,amount,ref 
100,060315,£175.50,123456 

Такие разные заголовки полей, порядок, форма, ведущие нули, десятичные точки и т.д.

Мои вопрос в том, какие параметры у меня есть, если я хочу поддерживать еще много новых (пока неизвестных) форматов через конфигурацию без необходимости написать/обновить код?

Я считаю, что XPATH может быть подход (и использовать сторонний инструмент для управления сопоставлением и т. Д.), Но я не знаком с этим, и он кажется немного неуклюжим. Если бы это был JSON для CSV-картографа, мне было бы лучше с этим.

Мне также было интересно, сможет ли SSIS выполнить эту работу, но опять-таки я не слишком хорошо знаком с этим.

Я мог бы создать что-то (я разработчик C# .NET) и использовать форматирование строк и предоставить некоторый интерфейс для этого, я думаю.

Любые предложения, мысли, опыт?

Update:

Запрошенная функция является то, что новый формат может поддерживаться в течение нескольких часов, создана не-кодер, в идеале через файл конфигурации или UI. Это может быть сказано несколько минут в месяц, но важно иметь дело с оборотом.

+0

Вы не можете определить выходные форматы «на лету» в SSIS, но вы можете в BIML (который генерирует пакеты SSIS на основе кода). Сколько форматов вы действительно ожидаете? Это не так медленно настраивать в SSIS каждый раз. –

+0

Спасибо, Ник. См. Обновление. –

+0

вам нужно создать несколько файлов одновременно, или это может быть как «Запустить программу»> «Выход из программы»> изменить файл конфигурации> снова запустить программу? » – DrewJordan

ответ

0

Я бы рекомендовал использовать некоторый компонент с открытым исходным кодом для наложения файла CSV. См. here. Итак, единственное, что вам нужно - это порядок столбцов. Вы можете справиться с этим, используя динамический sql, который может быть сгенерирован каким-то конфигурационным файлом. Этот файл также может содержать информацию, необходимую для компонента csv.

+0

Ваша ссылка - это просто введение в CSV, которое не так полезно :-(Dynamic sql yes a option. Я идеально искал рамки или инструмент, который дает мне 80% того, что мне нужно. Я знаю, что я мог бы что-то построить царапины, но я бы предпочел, если бы там было что-то, что я мог бы там заложить. Спасибо. –

Смежные вопросы