2015-07-23 2 views
1

Я использую Visual Studio 2012 (оболочка) для создания пакета SSIS, который будет импортировать плоский файл в таблицу DB SQL Server.Преобразование данных SSIS в сопоставление столбцов назначения OLE DB

У меня есть файл с плоским файлом и назначение OLE DB с компонентом преобразования данных между ними.

Я использую инструмент преобразования данных, чтобы преобразовать все мои столбцы из источника в строку Unicode [DT_WSTR], поэтому я не получу unicode для ошибки un unicode.

Я оставил имена псевдонимов выходных псевдонимов, присвоенные столбцам компонентом Data Conversion, который является только исходным именем входного столбца со словами «Копия», добавленным спереди.

У меня более 200 столбцов. Когда я дважды нажимаю на свой компонент Destination и перехожу к Map my columns, я вижу все исходные имена столбцов, которые сначала отображаются в раскрывающемся списке доступных столбцов для сопоставления, а затем, когда я просматриваю первые 200 оригинальных имен столбцов, я, наконец, добираюсь до мои имена в конвертированных столбцах (те, которые говорят «Копировать»).

Я не знаю, как я делал это раньше, но все, что мне нужно было бы сделать, это дважды нажать клавишу со стрелкой вниз и перейти от «Столбец 0» к «Копии столбца 0», чтобы я был в основном способным для быстрого доступа к столбцам. (вкладка, вкладка, стрелка вниз, стрелка вниз и повтор).

Теперь по какой-то причине я должен нажимать клавишу со стрелкой вниз более 200 раз, чтобы пройти все имена исходных колонок, чтобы затем выбрать имена преобразованных столбцов, которые будут очень трудоемкими (и, вероятно, причиной RSI) ,

Я хочу знать, могу ли я сделать что-либо из следующих действий:

1) сделать так, чтобы только трансформированные имена столбцов отображаются в доступных входных столбцов, когда я отображение столбцов в Destination OLE DB ,

или

2) Выясните, как я был в состоянии просто нажмите клавишу со стрелкой вниз в два раза при выборе входного столбца, а затем он будет переходить от имени оригинала столбца с именем трансформированной колонки (без ударить клавишу со стрелкой вниз более 200 раз, чтобы перейти к именам преобразованных столбцов).

enter image description here

+0

Должны ли ваши целевые поля быть unicode ('NVARCHAR'). Если вы сделаете их «VARCHAR», их конвертировать не нужно. –

+0

@ Nick.McDermaid Наверное, нет. Я всегда делал это так, но я посмотрю, действительно ли мне нужен NVARCHAR. Благодарю. –

ответ

2

Я всегда убедитесь, что столбцы метаданных, которые вы хотите вывести в таблице имеют такое же имя, что и столбцы назначения вручную соответствующие столбцы с различными столбцами имен просто слишком подвержен ошибкам. Те же названия означают, что вы можете просто щелкнуть правой кнопкой мыши по карте и выбрать карту по имени. Существует несколько способов обойти это:

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

Второй вариант - вставить задачу Derived Column между вашим преобразованием данных и вашим назначением OLE DB. Для каждого символа «Копия» выберите «заменить» и добавьте соответствующий столбец «Копировать» в выражение.

В-третьих, и мой любимый - вставьте союз Все задачи между вашим преобразованием данных и вашим назначением OLE DB. в отображении Union All вы можете переименовать любой столбец, отредактировав поле имени столбца вывода, и вы можете щелкнуть правой кнопкой мыши по любому столбцу, чтобы удалить его.Таким образом, вы удаляете все столбцы «Копия» и переименовываете «Копию», дающую именно то, что вам нужно. Это странно, используя Union All с одним входом, но он работает.

+0

Я забыл, что SSIS может отображать на основе имен столбцов (duh!). Я пошел вперед и переименовал имена выходных столбцов в SSIS, чтобы они соответствовали именам столбцов назначения и сопоставлениям BOOM. Спасибо, что предложили разные варианты. –

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