Я экспортирую данные из процедуры SQL в плоский файл. Моя проблема в том, что у меня есть столбец под названием «Тест» с данными 1e2, 1e1, 1e3 .....
. Когда я экспортирую в плоский файл, данные для этого столбца выглядят так: 1.00E+02,1.00E+01,1.00E+03...... .
Что мне делать, чтобы получить точные данные в плоский файл из процедуры SQL. Любая помощь приветствуется. Спасибо.
Проблема экспорта данных SSIS Flat File Destination
Ответы (2)
Убедитесь, что столбец в вашем Flat File Connection Manager
содержит DataType
из string [DT_STR]
. Это позволит избежать неявного преобразования вашего столбца службами SSIS. Смотрите изображение ниже:
person
Mark He
schedule
10.11.2015
Столбец уже имеет тип данных строки [DT_STR]. Но проблема все еще существует.
- person user28455; 10.11.2015
@ user28455 включить средство просмотра данных между
OLE DB source
и Flat File Destination
, значения все еще 1e2, 1e3, etc.
или они были преобразованы до того, как они достигнут места назначения?
- person Mark He; 10.11.2015
Они еще 1е2,1е3 и т.д. Они не конвертировались до того, как дошли до пункта назначения.
- person user28455; 10.11.2015
@ user28455, вы открываете плоский файл с помощью Excel? Я думаю, что преобразование происходит там. Попробуйте удалить файл и открыть его блокнотом.
- person Mark He; 10.11.2015
Да открываю файл в csv. когда я открываю файл с помощью блокнота, он отображает 1e1,1e2... но пользователь откроет его с помощью csv, а не блокнота.
- person user28455; 10.11.2015
@ user28455, значит, данные верны, и пакет SSIS выводит правильные результаты ... так в чем проблема? Уровень отображения полностью контролируется Excel и не зависит от внутреннего уровня данных. Вы можете изменить форматирование значений в Excel, но разве пользователи не хотят, чтобы 100 отображалось как 1.00E+2, а не как строка 1e2, с которой они ничего не могут сделать?
- person Mark He; 10.11.2015
Пользователям нужно 1e2...данные, а не 1.00E+2, поскольку значение в этом столбце равно 1e2. Проблема в том, что когда я экспортирую в плоский файл из SSIS, мне нужно, чтобы excel/csv отображал данные как 1e2, а не какие-либо другие данные.
- person user28455; 10.11.2015
Вы можете добавить апостроф перед элементом данных, например. '1e2. Это остановит Excel от преобразования значения. Однако вы все равно увидите апостроф в Excel!
- person MiguelH; 11.11.2015
Еще один вариант. Создайте книгу .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
1e2, 1e1, 1e3, etc.
? Или фактические значения, такие как100, 10, 1000
? - person Mark He   schedule 10.11.2015