我有一個電子表格。它包含公司信息,例如姓名,地址,電話,電子郵件等。我想要做的只是將一個平面導入SQL到它可以創建的表中,以便我可以對其進行一些處理。我只是使用MS SQL導入嚮導。我沒有使用BCP。DTS導入失敗
它所有的方式獲取到結束,給了我這個錯誤:
Blockquote Operation stopped...
初始化數據流任務(成功)
初始化連接(成功)
設置SQL命令(成功)
設置源連接(成功)
設置目標連接(成功)
驗證(成功) 消息 警告0x80049304:數據流任務1:警告:無法打開全局共享內存與性能進行溝通DLL;數據流性能計數器不可用。要解決此問題,請以管理員身份或系統控制檯運行此程序包。 (SQL Server導入和導出嚮導)
準備執行(成功)
預執行(成功)
執行(錯誤) 消息 錯誤0xc020901c:數據流任務1 :Source發生錯誤 - crm_company $ .Outputs [Excel Source Output] .Columns Source上的[Directions] - crm_company $ .Outputs [Excel Source Output]。返回的列狀態是:「文本被截斷或者一個或多個字符在目標代碼頁中沒有匹配。」 (SQL Server導入和導出嚮導)
錯誤0xc020902a:數據流任務1: 「源 - crm_company $ .Outputs [Excel源輸出] .Columns [服法]」 失敗,因爲發生了截斷,和「Source - crm_company $ .Outputs [Excel Source Output] .Columns [Directions]」指定截斷時失敗的截斷行處置。指定組件的指定對象上發生截斷錯誤。 (SQL Server導入和導出嚮導)
複製到[DBO] [crm_company](停止) 消息 錯誤0xc0047038:數據流任務1:SSIS錯誤代碼DTS_E_PRIMEOUTPUTFAILED。 Source - crm_company $上的PrimeOutput方法返回了錯誤代碼0xC020902A。當管道引擎調用PrimeOutput()時,組件返回失敗代碼。失敗代碼的含義由組件定義,但錯誤是致命的,並且管道停止執行。在此之前可能會發布錯誤消息,提供有關失敗的更多信息。 (SQL Server導入和導出嚮導)
後執行(成功) 消息 信息0x4004300b:數據流任務1: 「目的地 - crm_company寫道:」 469行。 (SQL Server導入和導出嚮導)所有的
Blockquote
首先,我已經告訴DTS忽略任何截斷錯誤。源字段是int或nvarchar。我編輯映射並將其強制爲int,而不是所需列的float。我已將默認列大小從255設置爲510.對於2列(方向和註釋),它已決定Directions爲nvarchar,Notes爲nvarchar(max)。我重寫Directions one,以便將其視爲nvarchar(max),我可以在它運行後創建的表中看到它。但是,當它運行時,每當出現上述錯誤時都會失敗。
我只是想這個數據到一個表。就這樣。如果我先手動指定一個表並導入,它仍然是錯誤的。 Directions中最長的文字長度爲978個字符,所以它幾乎不是很大。我不在乎它是否截斷,我只是不希望它在需要時停下來。有16000行導入,只有470行導入失敗。
我不知道哪一行失敗,在源文件中,因爲奇怪的是,DTS是不拉的數據,在它的順序,在電子表格中。去搞清楚。我嘗試重寫DTS愚蠢的嘗試,通過粘貼20行文本數據來決定列格式是什麼,但仍然失敗。
是否有可能爲一列值的一個包含列分隔符?或行分隔符? –
這不是CSV導入。這是一個xlsx文件,因此沒有任何分隔符。預覽很好,並顯示正確列中的所有內容。如果你告訴它忽略全局截斷和我導入包含一個長度超過1000個字符不再的數據列到一個nvarchar(最大)場,應該沒有問題,應該不會發生截斷。如果發現任何要截斷的內容,它應該忽略它,因爲這是我配置它的方式,但它忽略了我的設置。 – snert