Ошибка преобразования типа в операции копирования для значения 2150002867256: фабрика данных Azure

#azure #azure-sql-database #azure-data-factory #azure-data-factory-pipeline

#azure #azure-sql-database #azure-data-factory #azure-data-factory-конвейер

Вопрос:

Я вижу другое сообщение о такой же ошибке, но, похоже, решение не работает. Я получаю ту же ошибку «Операция по целевому копированию данных в цель не удалась: ErrorCode = TypeConversionFailure, исключение возникло при преобразовании значения ‘2150002867256’ для имени столбца ‘sourceKey’ из типа ‘String’ (точность: 255, масштаб: 255) в тип ‘Int32’ (точность:, масштаб:). Дополнительная информация: значение было либо слишком большим, либо слишком маленьким для Int32. «

Мой тип столбца источника (Synapse) (Varchar (249) и тип целевого столбца (Couchbase) являются одной и той же СТРОКОЙ. Но не уверен, что ошибка для значения ‘2150002867256’. Это ODBC-соединение между Synapse и Couchbase. И выполнение операции КОПИРОВАНИЯ в ADF

Пожалуйста, помогите, если у кого-нибудь есть какие-либо данные. Большое вам спасибо.

введите описание изображения здесь

Комментарии:

1. вы изменили схему при сопоставлении столбца? Эта операция установит для всех столбцов строковый тип данных, а затем преобразует их в тип данных приемника. Можете ли вы показать нам скриншот сопоставления?

2. Привет @Vikas, вы должны изменить схему таблицы приемника на другой тип данных, например bigint . Ошибка будет устранена. Если мой ответ полезен для вас, пожалуйста, примите его как ответ. Это может быть полезно для других участников сообщества. Спасибо.

3. В NoSQL мы не можем изменить тип данных. Он определил тип данных внутренне при вставке данных в корзину. Поскольку моим источником является Synapse, а целью — couchbase. Я пытался использовать cast(cast(sourcekey как BIGINT) как VARCHAR) в запросе копирования, но все еще не разрешен. Это также может быть проблемой конфигурации ODBC, но не уверен. очень странно

Ответ №1:

Ваш тип данных столбца схемы таблицы приемника sourceKey должен быть INT(Transact-SQL):

введите описание изображения здесь

Значение ‘2150002867256’ выходит за пределы диапазона int, который вызвал ошибку. Вы можете протестировать is в SSMS, и вы получите ошибку: введите описание изображения здесь

Необходимо изменить схему таблицы приемника на другой тип данных, например bigint . Это работает хорошо. введите описание изображения здесь