2015-04-17 9 views
0

У меня есть пакет SSIS, который является очень простым. Экспортирует данные из таблицы SQL Server 2008 в файл txt (с разделителями-запятыми). Конечный клиент хочет иметь поля с атрибутом текста ("), но когда значение Null не хочет, чтобы определитель текста. К сожалению, иногда поля имеют значение, а другие значения равны нулю. Есть ли способ включить только текст ? классификатор, когда есть истинное значение в полеУдалить текст классификатора по нулям

Текущий экспорт выглядит примерно так:

"Reference", "Key", "Name", "Custom1" 
"","123456","John Doe", "9515551212" 
"","654321","Jane Doe","" 

Preferred Выход:

"Reference", "Key", "Name", "Custom1" 
,"123456","John Doe", "9515551212" 
,"654321","Jane Doe", 

на справочном поле, он всегда пустой , Поэтому я попытался сделать Text Qualifier «False» в этом поле, но невероятно они хотят, чтобы даже заголовки столбцов были текстовыми.

+0

это невозможно из-за того, что файлы csv не придерживаются той же теории «NULL», что и большинство баз данных. Нуль и пустая строка считаются одной и той же в файле csv, а определитель обозначает пустую текстовую строку. В любом случае, если у вас должен быть «квалифицированный файл, в котором некоторые поля не были квалифицированы, это было бы абсолютной болью для импорта. Если бы я был вами, я бы консультировался с вашим клиентом и настаивал на том, чтобы они переосмыслили свое решение. – SFrejofsky

+0

Ну, это невозможно за один шаг. Но после создания файла у вас может возникнуть задача редактирования скрипта и удалить все записи из «". –

ответ

0

Я выяснил уродливое обходное решение. Я создал транзакционный запрос для выполнения случая, когда [field] имеет значение null, а затем null else '"' + [field] + '" end as "" "[field]" "" сделал это для каждого поля, и он работал для что я (или, скорее, мой клиент) искал.

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