В поисках столь необходимого руководства. Моя конечная цель - постепенно загружать данные из исходной базы данных Oracle в SQL серверную базу данных на основе столбца OBJID с учетом регистра.
Текущая задача потока данных служб SSIS импортируется из базы данных Oracle через ADO. NET и загружает его в серверную базу данных SQL, используя запрос SQL (показан ниже). Исходные данные Oracle содержат уникальный столбец OBJID, который начинается с типа данных ROWID в Oracle. Оператор SQL, используемый для извлечения данных из Oracle, использует функцию ROWIDTOCHAR()
для преобразования столбца OBJID для SQL Сервера. Столбец OBJID имеет тип NVARCHAR
(Latin1_General_CS_AS) в целевой базе данных SQL Server.
К сожалению, у меня нет исходных данных Created_Date
или Modified_Date
, чтобы использовать для инкрементальной загрузки ,
До сих пор я создал однорядную задачу SQL в SSIS, чтобы выбрать OBJID, загруженный в данный момент в целевой базе данных. Набор результатов записывается в строковую переменную, которую я записал в источник SQL.
select objid
from dbo.target
Однако исходный запрос ADO. NET, похоже, не принимает переменную OBJID в операторе where.
SELECT
account_date, emp_id, rowidtochar(objid) as objid
FROM
oracle.source
WHERE
rowidtochar(objid) <> CAST('"+ @[User::OBJIDSTG]+"' AS VARCHAR2 (18))
Я также изменил запрос SQL удалив CAST()
но получил те же результаты.
Кто-нибудь пробовал это раньше? Я думаю, что моя проблема заключается в типах данных, но я не уверен, где go отсюда.