我有一個SSIS作業按照SQL Server 2008 R2上的計劃運行。這個工作需要多個以逗號分隔的文本文件並將它們導入到SQL表中。大約4年前我創建了這個SSIS包,並且我定期更新它沒有問題。我最近不得不對一個數據流任務做一個小改動。這在我的機器上運行良好,但是當我將這項工作放到服務器上時,它出錯了。經過仔細觀察,其出錯的原因是它試圖放入SQL表中的值都包含圍繞值的引號。這會導致非字符串值(如整數類型)的錯誤,或者只在字符串字段中引用引號。SSIS作業導入引號
我的源文本文件包含一些值的引號。以下是兩條示例行:
「536518 * 1」,「A120」,「B002209A12」,「AA」,01-16-14,3,0.000,1555.50,「0」,0,「UA」, 12-17-13,「KS」,「A」,「04」,「1」,「MNS」,「AM」
「540039 * 1」,「G040」,「YPCILANHA/S224 「 」Y「,01-16-14,2,0.080,905.28, 」0「,0, 」SM「,14年1月16日, 」「, 」「, 」A「, 」02「,」 1 」, 「MNA」, 「AM」
因此,在我的平面文件連接管理器,我有 「文本限定符」 設置爲引號,像這樣:
真奇怪的是,有問題的數據流任務不是我修改的那個。我沒有以任何方式更改SQL表定義。最後,我在我的DFT中添加了派生列以手動去除引號。例如:
REPLACE([Column 0],"\"","")
因爲這對每一行做,我只好到這個18倍,這是煩了。
另一個非常奇怪的症狀是,這從我的筆記本電腦正常工作。如果我在我的筆記本電腦上運行我的SSIS作業並更新我的生產服務器上的相同表格,它可以正常工作(不帶引號)。只有當作業通過預定的SQL作業自動運行時纔會發生此問題。
我會大大欣賞任何人可能有的建議。
謝謝!
錯誤信息是什麼? – Jayvee
對不起,我應該包括那個。錯誤如下所示。再次,這是因爲它試圖將一個像「5」(包括引號)的值放入整數字段中。 [導入未結訂單數據]中的錯誤:將列「列8」(42)轉換爲「已分配數量」列(279)時數據轉換失敗。轉換返回狀態值2和狀態文本「由於潛在的數據丟失,無法轉換該值」。 – Loki70
也許筆記本電腦上的SQL Server版本差異,還是配置文件的區別?計劃的作業是否使用配置文件?理論上配置可以覆蓋連接管理器屬性,如文本限定符。 – criticalfix