Какой тип переменной используется для представления денег в SSIS - PullRequest
2 голосов
/ 21 октября 2010

Мне нужно загрузить значение 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.".

Тип столбца Money в SSIS - DT_CY (Валюта), но этот тип недоступен дляпеременные.

Какой тип подходит для денег?

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

variable type listbox 2 variable type listbox 1

Ответы [ 3 ]

3 голосов
/ 23 апреля 2014

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

SQL имеет тип денег.

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

1 голос
/ 22 сентября 2015

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

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

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

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

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

...