Проблема экспорта данных SSIS Flat File Destination

Я экспортирую данные из процедуры SQL в плоский файл. Моя проблема в том, что у меня есть столбец под названием «Тест» с данными 1e2, 1e1, 1e3 ...... Когда я экспортирую в плоский файл, данные для этого столбца выглядят так: 1.00E+02,1.00E+01,1.00E+03...... . Что мне делать, чтобы получить точные данные в плоский файл из процедуры SQL. Любая помощь приветствуется. Спасибо.


person user28455    schedule 10.11.2015    source источник
comment
Как вы получаете данные через источник OLE DB, который вызывает хранимую процедуру? И какой тип столбца источника?   -  person Mark He    schedule 10.11.2015
comment
Да, я получаю данные через источник OLE DB, который вызывает хранимую процедуру. Тип столбца — varchar(10)   -  person user28455    schedule 10.11.2015
comment
Вам нужны данные типа 1e2, 1e1, 1e3, etc.? Или фактические значения, такие как 100, 10, 1000?   -  person Mark He    schedule 10.11.2015
comment
мне нужны такие данные, как 1e2, 1e1, 1e3 и т. д.   -  person user28455    schedule 10.11.2015


Ответы (2)


Убедитесь, что столбец в вашем Flat File Connection Manager содержит DataType из string [DT_STR]. Это позволит избежать неявного преобразования вашего столбца службами SSIS. Смотрите изображение ниже:

Настройка диспетчера соединений с плоскими файлами

person Mark He    schedule 10.11.2015
comment
Столбец уже имеет тип данных строки [DT_STR]. Но проблема все еще существует. - person user28455; 10.11.2015
comment
@ user28455 включить средство просмотра данных между OLE DB source и Flat File Destination, значения все еще 1e2, 1e3, etc. или они были преобразованы до того, как они достигнут места назначения? - person Mark He; 10.11.2015
comment
Они еще 1е2,1е3 и т.д. Они не конвертировались до того, как дошли до пункта назначения. - person user28455; 10.11.2015
comment
@ user28455, вы открываете плоский файл с помощью Excel? Я думаю, что преобразование происходит там. Попробуйте удалить файл и открыть его блокнотом. - person Mark He; 10.11.2015
comment
Да открываю файл в csv. когда я открываю файл с помощью блокнота, он отображает 1e1,1e2... но пользователь откроет его с помощью csv, а не блокнота. - person user28455; 10.11.2015
comment
@ user28455, значит, данные верны, и пакет SSIS выводит правильные результаты ... так в чем проблема? Уровень отображения полностью контролируется Excel и не зависит от внутреннего уровня данных. Вы можете изменить форматирование значений в Excel, но разве пользователи не хотят, чтобы 100 отображалось как 1.00E+2, а не как строка 1e2, с которой они ничего не могут сделать? - person Mark He; 10.11.2015
comment
Пользователям нужно 1e2...данные, а не 1.00E+2, поскольку значение в этом столбце равно 1e2. Проблема в том, что когда я экспортирую в плоский файл из SSIS, мне нужно, чтобы excel/csv отображал данные как 1e2, а не какие-либо другие данные. - person user28455; 10.11.2015
comment
Вы можете добавить апостроф перед элементом данных, например. '1e2. Это остановит Excel от преобразования значения. Однако вы все равно увидите апостроф в Excel! - person MiguelH; 11.11.2015
comment
Еще один вариант. Создайте книгу .xlsm для запуска макроса в событии открытия книги. Это откроет файл .csv с помощью импорта данных Data›From Text. Этот макрос можно записать для преобразования столбцов входящих данных в текстовые поля. - person MiguelH; 11.11.2015

Это решило мою проблему,

Создал шаблон Excel с тестовой колонкой в ​​виде текста.

В службах SSIS созданы задачи источника OLEDB, преобразования данных и назначения Excel. В преобразовании данных я преобразовал тестовый столбец в строку Unicode DT_WSTR. Я выполнил пакет, и он заполнил данные в шаблоне, который я создал с помощью 1e1,1e2... в столбце Test.

person user28455    schedule 13.11.2015