[英]SSIS - Variable truncated/converted when passed to stored procedure
我正在研究一個SSIS包,該包從CSV文件(其中有1列)獲取數據,並將每一行的數據作為參數傳遞給存儲過程。 每行是9個數字和1個字母(即10個字符的字符串)。
包的結構如下:
For loop that iterates over files in a given directory.
Data Flow ( Flat File Source getting CSV file -> Recordset Destination )
-> For loop that iterates over each record.
Execute SQL Task calls stored procedure with the value from each record as a parameter.
問題:
根據存儲過程中的調試代碼,將傳遞以下內容:
Actual data: 111111111X, 222222222Y, 333333333Z. What's received: 1, 2, 3.
我添加了一些斷點,並觀察了用於存儲字符串的變量,並且可以看到在每次迭代期間它的值都是正確的,即在存儲過程調用之前和之后的完整的10個字符的字符串。
基於某種搜索,這使我認為在將數據從變量傳遞給Execute SQL Task並進行調用之間發生了某種類型轉換。
此鏈接表明任務有時會投射數據:
我排除了類型/長度的廢話,並觀察了變量確認。 我也嘗試過強制聲明本身,但無濟於事。
誰能確認我的假設和/或提供解決方案?
它可能在以下情況下發生:
檢查您的源平面文件是否為UNICODE文件,以及
將您的目標列設置為nvarchar(max)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.