Отделение строк из файла CSV в SSIS 2008 - PullRequest
1 голос
/ 26 марта 2010

У меня есть данные, которые похожи на следующие:

"D.STEIN","DS","01","ALTRES","TTTTTTFFTT"
"D.STEIN","DS","01","APCASH","TTTTTTFFTT"
"D.STEIN","DS","01","APINH","TTTTTTFFTT"
"D.STEIN","DS","01","APINV","TTTTTTFFTT"
"D.STEIN","DS","01","APMISC","TTTTTTFFTT"
"D.STEIN","DS","01","APPCHK","TTTTTTFFTT"
"D.STEIN","DS","01","APWLNK","TTTTTTFFTT"
"D.STEIN","DS","01","ARCOM","TTTTTTFFTT"
"D.STEIN","DS","01","ARINV","TTTTTTFFTT"

Мне нужно разбить окончательную строку на отдельные столбцы для импорта в таблицу SQL, по одной букве в каждом поле. Следовательно, «TTTTTTFFTT» будет разбит на 10 отдельных полей, каждое из которых будет иметь одно битовое значение.

Я использовал редактор исходного файла для загрузки данных. Как мне сделать раскол?

Ответы [ 2 ]

3 голосов
/ 26 марта 2010

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

substring([ColumnName],1,1) == "T" ? 1 : 0

Так что это в основном условие, говорящее для первого символа, если это T, тогда сделайте его 1, иначе 0 ... сделайте это для каждой буквы в вашем поле. Сделайте тип данных логическим (DT_BOOL).

0 голосов
/ 26 марта 2010

Я не знаю SSIS. Но, возможно, вы можете сделать такие преобразования, по одному для каждого битового столбца:

case substring(Field5, 1, 1) when 'T' the 1 else 0 end
case substring(Field5, 2, 1) when 'T' the 1 else 0 end
case substring(Field5, 3, 1) when 'T' the 1 else 0 end
...

Если битовый столбец не имеет значения NULL, вам может потребоваться сделать следующее:

isnull(case substring(Field5, 1, 1) when 'T' the 1 else 0 end, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...