簡體   English   中英

使用 ADF 將 CSV 個文件導入 SQL 服務器

[英]Importing CSV file(s) into SQL server with ADF

我有一個存儲在 blob 存儲中的 CSV 文件,我想將記錄更新到本地 SQL 服務器中。 目前我在插入日期字段時遇到錯誤。 在 CSV 文件中,這些日期字段被鍵入為日期字段。 在我的 SQL 表中,它們被標記為 DateTime2 字段。 在 CSV 文件中,我有大約 1000 條記錄,其中 500 條被視為正確,500 條被視為錯誤。

當我檢查文件時,我真的沒有看到日期字段有什么不同。 沒有隱藏時間或任何實際上可能導致我的管道失敗的東西。

處理這些領域的好方法是什么? 在當前情況下,為了讓業務能夠繼續進行,我將所有字段插入為 nvarchar(500) 字段。 所以進口有效,但並不理想......

- 更新

我已經上傳了我正在導入的文件的圖像,刪除了我沒有收到錯誤的字段。 正如您在 csv 文件中看到的那樣,包含一些數據的單元格被標記為日期字段。

Excel 例子Excel范例

在 ADF 中,所有字段都被標識為“字符串”字段,所以這可能就是問題所在。 盡管如此,我還是無法更改導入設置中的架構。

ADF 將它們識別為字符串ADF 將它們識別為字符串

在 SQL 中,它們被設置為 DateTime2(將其設置為 dateTime 或 date 會產生相同的錯誤)。

匯場模式匯場模式

這里是映射本身:

源和匯映射源和匯映射

最終我得到的錯誤是說它不能將字符串值插入到日期時間字段中。

{
"errorCode": "2200",
"message": "ErrorCode=TypeConversionFailure,Er is een uitzondering opgetreden bij het converteren van de waarde 29-8-2017 voor de kolomnaam TT_STARTDATE van het type String (Precision: , Scale: ) naar type DateTime (Precision: 255, Scale: 7). Aanvullende informatie: String was not recognized as a valid DateTime.",
"failureType": "UserError",
"target": "EMP",
"details": [
    {
        "errorCode": 0,
        "message": "'Type=System.FormatException,Message=String was not recognized as a valid DateTime.,Source=mscorlib,'",
        "details": []
    }
]}

提前致謝!

好吧,我認為這是日期的格式,它在 excel 中是不同的,而 SQL 期望的是創建錯誤。 我認為在 Excel 中你提供的是 dd-MM-YYYY,可能是你的 SQL 期待的是 MM-DD-YYYY。 我建議請通過使用 SSMS 或其他 IDE 從 TSQL 插入一條記錄來在 SQL 端檢查這一點。一旦你確定你可以相應地更改 EXCEL 中的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM