我有什麼應該是一個簡單的任務 - 從執行SQL任務如何將SQL查詢結果的數值賦給數據類型爲Double的包變量?
SELECT MainID FROM TableA WHERE TableA_ID = 1`
填充使用ResultSet用戶變量(這隻會返回一列,一列)。
MainID當前作爲用戶定義的數據類型存儲在數據庫中。該值以格式XXXX.Y(例如8008.1)存儲。
如果我將UserVariable更改爲字符串數據類型,則可以毫無疑問地將該值賦值爲CASTing或將ResultSet轉換爲STRING/NUMERIC/FLOAT。
SELECT CAST(MainID as NUMERIC(9,1)) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CAST(MainID as FLOAT) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CAST(MainID as VARCHAR(10)) as 'MainID' FROM TableA WHERE TableA_ID = 1;
或
SELECT CONVERT(NUMERIC(9,1), MainID) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CONVERT(FLOAT, MainID) as 'MainID' FROM TableA WHERE TableA_ID = 1;
SELECT CONVERT(VARCHAR(10), MainID) as 'MainID' FROM TableA WHERE TableA_ID = 1;
然而,我不能如果用戶變量數據類型是DOUBLE分配的值。我收到以下錯誤信息:
[Execute SQL Task] Error: An error occurred while assigning a value to variable "dUserVariable": "The type of the value being assigned to variable "User::dUserVariable" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object. ".
我是相當新的SSIS所以我如何讓這種轉換要經過一個有點難倒。
任何想法?
由第三方組件所需的用戶變量作爲Web服務請求中的參數。它期望它是一個DOUBLE數據類型。我只需要更新變量,以便正確調用Web服務器。 – Rob
Web服務任務調用Web服務。儘管當我嘗試從查詢中將UserVariable分配給ResultSet時,在執行SQL任務上收到錯誤。 – Rob