У меня есть сценарий, в котором я пытаюсь выбрать некоторые данные в таблице t1 и t2 с удаленного сервера (на котором У меня просто есть права на чтение) S1 в DB db1 с другого удаленного сервера (на котором я DBO, но у меня нет всех разрешений, чтобы я мог делать все, что захочу) S2 в DB db2 в таблицу t1 через пакет SSIS.
S1 и S2 оба являются связанными серверами. Я подключился к S1 из S2 через объектный сервер в SSMS.
Теперь я создал хранимую процедуру sp1 в S2.db2, которая имеет несколько операторов выбора из двух разных таблиц с объединением для диапазон дат, которые передаются в качестве параметров в sp1.
, например, как показано ниже:
SELECT * from s1.db1.schema1.t1 LEFT JOIN s1.db 1.schema1.t2 ON [CONDITION] WHERE [CONDITIONS] Теперь в моем пакете SSIS есть задача Dataflow, которая имеет источник и назначение OLE DB со строкой подключения к s2. db2
В источнике я вызываю вышеупомянутый запрос непосредственно в команде SQL и заполняю целевую таблицу, которой является S2.db2.t1, и он работает нормально
Но выдает ошибку, когда я пытаюсь сделать следующее
Ошибка:
Ошибка в FII54_CBI_TM51 [FII54_CBI 1 ]: код ошибки SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80004005. Доступна запись OLE DB. Источник: «Microsoft SQL Server Native Client 10.0» Hresult: 0x80004005 Описание: «Конфликт типов операндов: int несовместим с датой».
Ошибка в FII54_CBI_TM51 [FII54_CBI 1 ]: невозможно получить информацию о столбце из источника данных. Убедитесь, что ваша целевая таблица в базе данных доступна.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Исключение из HRESULT: 0xC020204A (Microsoft.SqlServer.DTSPipelineWrap)
КНОПКИ:
Я понимаю, что означает ошибка, но не понимаю, почему она выдает эту ошибку все.
Я признателен, если кто-нибудь поможет мне решить эту проблему? Для меня это очень срочно.