2010-10-21 36 views
2

我需要使用「執行SQL任務」組件在SSIS中的變量中加載Money值。 我將SELECT的返回列映射到變量。 我已經聲明的變量「UnknownMoney」作爲雙人或單,但我總是收到錯誤:什麼變量類型用於表示SSIS中的Money

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:

variable type listbox 2 variable type listbox 1

回答

1

這是我會做什麼:

  1. 具有SQL與選擇CAST返回一個類型十進制(MoneyColumn爲十進制(34,8))FROM表
  2. 將其設置爲你的類型的UnknownMoney十進制
  3. 使用您的UnknownMoney變量。
  4. 如果您需要再次使用該變量作爲錢,丟回錢:CAST(@UnknownMoney金錢)
1

SSIS具有貨幣數據類型。

SQL有一個錢類型。

這些是兼容的。

+0

這是正確的答案。 – efesar 2015-04-14 15:13:28

+0

錯了。我需要一個變量是貨幣類型。 SSIS變量沒有貨幣類型。 – sergiom 2015-09-21 14:02:18

+0

哦,我明白了。我已經提交了另一個答案,現在你已經發布了截圖。 – danfolkes 2015-09-22 14:49:24

-1

(只是donfolkes的回答稍加修改)

在SSIS執行SQL任務:select ?=convert(decimal(13,2), MoneyCol)。在SSIS中設置參數並映射到UnknowMoney變量,並將方向作爲輸出。

爲了將它發回SQL,再次使用SQL轉換函數進行轉換。

+0

我寫道,我需要一個變量是貨幣類型。您不能將變量聲明爲DT_CY類型。 – sergiom 2015-09-21 14:00:59

相關問題