2010年5月27日 星期四

變數的資料型態

多加寫了一段union的sql,該sql總共有6個欄位,
用一個foreach loop task來接收這個sql result set中每一筆的欄位值
結果,重新執行package後, 在loop里的script task出現"長度超過"的錯誤

逐一debug後,才發現新加的union sql中,某個欄位是一個計算欄位, 剛好, 符合的筆數都是由新增的union 中的sql所取得

原本在ssis是用一個int16的變數去接收, 由於sql 中,該計算欄位應是回傳integer型態,所以造成script task 中用到這個變數值時,己經是讀取到不正確的數值

後來在sql中,將該欄位轉型為smallint後,重跑package後就ok了.

因此,最好要確認union select 回傳的型態和ssis variable的型態要對應正確

沒有留言:

張貼留言

IIS 網站無法下載中文檔名檔案因為取消高位元字元

 網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...