使用ADF将CSV文件导入SQL Server

gpnt7bae  于 2023-01-15  发布在  SQL Server
关注(0)|答案(1)|浏览(160)

我有一个存储在Blob存储中的CSV文件,并希望在内部部署SQL Server中更新插入记录。当前我在插入日期字段时遇到错误。在CSV文件中,这些日期字段被键入为日期字段。在我的SQL表中,它们被标记为DateTime2字段。在CSV文件中,我有大约1000条记录,其中500条被视为正确,500条被视为不正确。
当我检查文件时,我真的没有看到日期字段有什么不同。没有隐藏时间或任何实际上可能导致我的管道失败的东西。
处理这些字段的好方法是什么?在当前情况下,作为一种变通方法,以便业务能够继续,我将所有字段作为nvarchar(500)字段插入。因此导入工作正常,但并不理想...

  • -更新
    我已经上传了一个我正在导入的文件的图像,删除了我没有得到错误的字段。正如你所看到的,在csv文件中,有一些数据的单元格被标记为日期字段。
    Excel示例

在ADF中,所有的字段都被标识为"字符串"字段,所以这可能就是问题所在,但我不能在导入设置中更改模式。
ADF将它们标识为字符串

在SQL中,它们被设置为DateTime2(将其设置为dateTime或date会产生相同的错误)。
汇字段架构

这里是Map本身:
源和汇Map

最后,我得到的错误是,它不能将字符串值插入到日期时间字段中。

{
"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": []
    }
]}

先谢了!

j7dteeu8

j7dteeu81#

我认为这是日期的格式,在Excel中是不同的,SQL所期望的是创建错误。我认为在Excel中,您提供的是dd-MM-YYYY,可能是您的SQL所期望的MM-DD-YYYY。我建议请检查SQL端使用SSMS或其他IDE从TSQL插入记录。一旦您确定可以相应地更改Excel中的格式。

相关问题