Как извлечь bigint из базы данных и поместить его в Int64 в SSIS - PullRequest
0 голосов
/ 01 июня 2010

Я столкнулся с этой проблемой пару лет назад и надеюсь, что было исправление, и я просто не знаю об этом. Я использую задачу «Выполнение SQL» в потоке управления пакета служб SSIS для получения значения идентификатора «bigint». Задача должна поместить это в переменную Int64 SSIS, но я получаю сообщение об ошибке: «Тип значения, назначаемого переменной« User :: AuditID », отличается от текущего типа переменной. Переменные могут не изменить тип во время выполнения. Переменная» типы являются строгими, за исключением переменных типа Object. "

Когда я обратил на это внимание MS пару лет назад, они заявили, что мне нужно «обойти» это, поместив bigint в переменную объекта SSIS, а затем преобразовать значение в Int64 по мере необходимости. Кто-нибудь знает, если это было исправлено, или мне все еще нужно «обойти» этот беспорядок?


редактирование:

Статистика сервера

  • Продукт: Microsoft SQL Server Enterprise Edition
  • Операционная система: Microsoft Windows NT 5.2 (3790)
  • Платформа: NT INTEL X86
  • Версия: 9.00.1399.06

Ответы [ 2 ]

1 голос
/ 05 июня 2010

Вам необходимо прочитать значение BIGINT в строковую переменную, а не переменную Object: Почему я не могу сохранить свой результат BIGINT в переменной Int64?

0 голосов
/ 01 июня 2010

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

Я нахожусь на SQL 2008, но SSIS должен обрабатывать вещи (в основном) одинаково независимо от исходных данных.

...