Jamie888 Ответов: 2

Тип значения, присваиваемого переменной "XXXXX", отличается от текущего типа переменной


Привет, у меня есть столбец в SQL Server 2008, в котором я сохранен как BIGINT. Я буду использовать данные столбца в SSIS и объявлю переменную как тип данных INT64. Когда я выполняю SSIS, он возвращает мне сообщение об ошибке в виде заголовка выше.
Как я могу решить эту проблему? Похоже на ошибку в SSIS.

Я планирую изменить тип данных в SQL на INT и тип данных в SSIS как INT32, но прежде чем использовать последний вариант, я хотел бы выслушать любые предложения здесь. Спасибо.

Что я уже пробовал:

1. Изменение типа данных в SSIS от типа int64 в строку как предложил онлайн и оставаться тип данных в SQL как значение типа bigint, но не получилось.

NightWizzard

Может быть, проблема не в типе данных, а в недопустимых или пустых значениях в ваших импортируемых данных?

RedDk

Дополнительная информация была бы полезна. Можете ли вы абсолютно убедиться, что bigint вернул ошибку? Я имею в виду, что это сообщение может быть ошибкой типа II; что операция синтаксического анализа идет плохо из-за какого-то изменения в "обновлении" базы данных, а возврат к типу На самом деле является необратимым битом строки. Другой способ, которым он может потерпеть неудачу, - это если запрос касается приведения. По той же причине. Попробуйте разобрать процедуру и выполнить ее в блоках, если у вас есть подколенные сухожилия для дальнейшего обхода.

2 Ответов

Рейтинг:
1

Richard Deeming

Согласно с это сообщение в блоге MSDN[^] с 2007 года, bigint значения возвращаются в виде строк, так как кросс-платформенная поддержка 8-байтового целочисленного типа в нем отсутствовала. вариант[^] ценности.

В сообщениях говорится, что это будет исправлено в будущей версии. Однако в комментарии от 2010 года говорится, что он не был исправлен в 2008R2. Другой комментарий предполагает, что он также не был исправлен в 2012 году.

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


Рейтинг:
1

Member 12999924

Соответствующий тип данных Bigint в SSIS-sbyte в ssis


Richard Deeming

bigint это 64-битное целое число со знаком.
sbyte является 8-битным целым числом со знаком.

Эти два типа не эквивалентны.