剛好上胡百敬老師的SSRS的課,順便問了老師這問題,老師幫忙試了也是一樣,看來是衍生資料行這東西搞鬼,不知為什會取得變數的初始值,後來上網查了一下,這篇也有類似的問題,SSIS - user variable used in derived column transform is not available - in some cases,不只我一人遇到,看來應該是Bug啊
如圖(一)封裝裡有個全域變數varCnt初始值為9,裡面有一個資料流程工作與指令碼工作,指令碼工作的用途是在最後秀varCnt的值而已,而在資料流程工作中會利用指令碼元件取得某個資料表筆數為701再塞給varCnt,再將varCnt的值再輸出給資料行outCnt,此時varCnt與outCnt的值都是701囉,但是接著利用衍生資料行加入個新資料行vCnt,這個新資料行的值是變數varCnt,你認為vCnt值應是多少呢?應該是帶更新過的varCnt值701,但是竟然是帶初使值9耶,如下圖(二)
圖(二)
很神奇吧,最後指令碼工作明明也是秀701,但在衍生資料行裡卻會抓預設值9,非常詭異最後我在SQL 2005、SQL 2008與SQL 2008 R2都建了一樣的封裝來試試,都有一樣的問題喔,給各位參考
0 意見:
張貼留言