2015-05-30 7 views
1

У меня есть несколько сложный запрос, который я хочу использовать в качестве источника в пакете SSIS. Я создаю свой источник OLE DB, задаю режим доступа как SQL и вставляю свой запрос в текстовое поле команды. Когда я нажимаю «Предварительный просмотр», образцы данных возвращаются, и все выглядит хорошо.Запрос Oracle в SSIS определяет неправильные типы данных

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

Выполнение моего исследования Я вижу, что внешние, выходные и столбцы ошибок автоматически определяются с неправильными типами данных. Некоторые очевидные целочисленные столбцы определяются как строки, тогда как другие устанавливаются как строки Unicode.

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

Спасибо за понимание.

+0

возможно дубликат [запроса Oracle в качестве источника в SSIS определяет неправильные типы данных] (http://stackoverflow.com/questions/2209056/oracle-query-as-source-in-ssis-defines-wrong -типы данных) –

ответ

1

Проблема, с которой вы сталкиваетесь, может быть решена одним из нескольких способов.

Прежде всего, если вы пытаетесь использовать расширенный редактор, чтобы изменить это (что я рекомендую против, так как для тех, кто не подходит для тех, кто не знает, что вы сделали), вы должны изменить настройки как для внешних, так и для исходных столбцов источника в синхронизации. Что такое «Исправление», когда вы нажимаете «Да», это несоответствие между ними.

Во-вторых, вы можете оставить их все как строки и использовать компонент преобразования данных для преобразования в нужные вам типы. Это проще для будущих сопровождающих.

Я предпочитаю использовать оператор sql oracle, который устанавливает типы, которые мне нужны в pl/sql, чтобы SSIS создавал поля с соответствующими типами. Это позволяет определению быть явным, чтобы сопровождающие могли видеть, что было сделано. С этой целью я использую sql-запрос для создания моего оператора выбора оракула из структуры таблицы назначения (в проекте, для которого я построил это, мы приводим всю структуру данных/структуры из Oracle в промежуточную серверную машину Sql до того, как применяются преобразования .) https://docs.google.com/leaf?id=0B4aVrSS2ke2IZGVkYWJkOWYtY2Y3Yy00MDI5LTkyMDctYjgwMGY2YzZiODRm&hl=en