[英]Importing CSV file(s) into SQL server with ADF
我有一个存储在 blob 存储中的 CSV 文件,我想将记录更新到本地 SQL 服务器中。 目前我在插入日期字段时遇到错误。 在 CSV 文件中,这些日期字段被键入为日期字段。 在我的 SQL 表中,它们被标记为 DateTime2 字段。 在 CSV 文件中,我有大约 1000 条记录,其中 500 条被视为正确,500 条被视为错误。
当我检查文件时,我真的没有看到日期字段有什么不同。 没有隐藏时间或任何实际上可能导致我的管道失败的东西。
处理这些领域的好方法是什么? 在当前情况下,为了让业务能够继续进行,我将所有字段插入为 nvarchar(500) 字段。 所以进口有效,但并不理想......
- 更新
我已经上传了我正在导入的文件的图像,删除了我没有收到错误的字段。 正如您在 csv 文件中看到的那样,包含一些数据的单元格被标记为日期字段。
Excel 例子
在 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.