MS SQL 服务器 SSIS 导入错误十进制值

MS SQL Server SSIS Import error decimal value

我有以下 csv 文件

Column
2,3
2,4

每次我通过 SSIS 包导入数据时,都会因为逗号值而出错。当我将 2,3 和 2,4 更改为 2.3 和 2.4 时,它工作正常。并且这些值将与 2,3 和 2,4 一起正确存储到 table.

对于导入,我使用代码页 1252 ANSI-Lateinisch I,数据库中的字段是十进制 (18,2)。

我的导入有什么问题?有任何想法吗?

谢谢

在您的 csv 连接管理器中,将列分隔符更改为 {CrLf} 字符。

您在问题中提到了错误原因:

When I change 2,3 and 2,4 to 2.3 and 2.4 it is working fine. And the values will be stored correctly with 2,3 and 2,4 into table.

这意味着 , 导致了问题。检查未用作定界符。

在平面文件连接管理器中,转到高级选项卡,select 列并更改列分隔符 属性。

如果是行中的最后一列,将分隔符更改为{CRLF}

如果文件中有很多列并且分隔符是逗号 , 那么您必须将其替换为 . 或使用添加文本限定符。

解决方法

如果仍然不起作用,请将列类型更改为 DT_STR,然后在 Data flow task 中添加一个派生列,将 , 替换为 , 并进行转换值为十进制。示例:

(DT_DECIMAl,2)REPLACE([COLUMN], ",", ".")