Какой тип переменной используется для представления денег в SSIS

Мне нужно загрузить значение Money в переменную в SSIS с помощью компонента «Выполнение задачи SQL». Я сопоставляю столбец возврата SELECT с переменной. Я объявил переменную «UnknownMoney» как Double или Single, но всегда получаю сообщение об ошибке:

Error: 0xC002F309 at Load Dummy vars, Execute SQL Task: An error occurred while assigning a value to variable "UnknownMoney": "The type of the value being assigned to variable "User::UnknownMoney" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object.".

Тип столбца Деньги в службах SSIS — DT_CY (валюта), но этот тип недоступен для переменных.

Какой правильный тип использовать для денег?

РЕДАКТИРОВАТЬ: раскрывающийся список типов переменных в VS2012:

 список переменных типа 2 список типов переменных 1


person sergiom    schedule 21.10.2010    source источник


Ответы (3)


Вот что я бы сделал:

  1. Попросите SQL вернуть тип decimal с помощью Select CAST(MoneyColumn AS decimal(34,8)) FROM Table
  2. Установите его в UnknownMoney типа Decimal.
  3. Используйте свою переменную UnknownMoney.
  4. Если вам нужно снова использовать переменную в качестве денег, приведите ее обратно к деньгам: CAST(@UnknownMoney AS money)
person danfolkes    schedule 22.09.2015

SSIS имеет тип данных валюты.

SQL имеет денежный тип.

Они совместимы.

person danfolkes    schedule 23.04.2014
comment
Неправильный. Мне нужна переменная типа валюты. Для переменных SSIS нет типа валюты. - person sergiom; 21.09.2015
comment
а ну понятно. Я отправил еще один ответ теперь, когда вы разместили скриншот. - person danfolkes; 22.09.2015

(Просто небольшая модификация ответа донфолкса)

В задаче SSIS «Выполнение SQL»: select ?=convert(decimal(13,2), MoneyCol). Установите параметры в SSIS и сопоставьте с переменной UnknowMoney, также укажите направление в качестве вывода.

Чтобы отправить его обратно в SQL, снова преобразуйте его, используя функцию преобразования SQL.

person Masud Ahmed    schedule 27.08.2015
comment
Я написал, что мне нужна переменная типа валюты. Вы не можете объявить переменную типа DT_CY. - person sergiom; 21.09.2015